diff --git a/ff-base/pom.xml b/ff-base/pom.xml deleted file mode 100644 index fa53859..0000000 --- a/ff-base/pom.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - 4.0.0 - - ff - com.ff - 0.0.1 - - - com.ff - ff-base - 0.0.1 - ff-base - ff-base - - - - - org.projectlombok - lombok - provided - - - - - com.dtflys.forest - forest-spring-boot-starter - 1.6.3 - - - - org.springframework.boot - spring-boot-dependencies - 2.5.15 - pom - import - - - - - org.springframework.boot - spring-boot-starter-web - - - - - org.springframework.boot - spring-boot-starter-aop - - - - - com.alibaba - druid-spring-boot-starter - - - - - pro.fessional - kaptcha - - - - - com.github.oshi - oshi-core - - - - - org.springframework - spring-context-support - - - - - org.springframework - spring-web - - - - - org.springframework.boot - spring-boot-starter-security - - - - - com.github.pagehelper - pagehelper-spring-boot-starter - - - - - org.springframework.boot - spring-boot-starter-validation - - - - - org.apache.commons - commons-lang3 - - - - - com.fasterxml.jackson.core - jackson-databind - - - - - com.alibaba.fastjson2 - fastjson2 - - - - - commons-io - commons-io - - - - - - - - org.apache.poi - poi-ooxml - - - - - org.apache.httpcomponents - httpclient - - - - com.squareup.okhttp3 - okhttp - - - - org.yaml - snakeyaml - - - - - io.jsonwebtoken - jjwt - - - - - javax.xml.bind - jaxb-api - - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - - org.apache.commons - commons-pool2 - - - - - eu.bitwalker - UserAgentUtils - - - - - javax.servlet - javax.servlet-api - - - - - com.google.zxing - core - - - com.google.zxing - javase - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/ff-base/src/main/java/com/ff/base/enums/TimeOutType.java b/ff-base/src/main/java/com/ff/base/enums/TimeOutType.java deleted file mode 100644 index d1ea786..0000000 --- a/ff-base/src/main/java/com/ff/base/enums/TimeOutType.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.ff.base.enums; - -import com.alibaba.druid.filter.AutoLoad; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 超时类型 - * - * @author shi - * @date 2025/04/09 - */ -@AllArgsConstructor -@Getter -public enum TimeOutType { - GAME_EXCHANGE_MONEY("gameExchangeMoney", "游戏余额转移"); - /** - * 代码 - */ - private final String code; - /** - * 信息 - */ - private final String info; -} diff --git a/ff-base/src/main/java/com/ff/base/enums/TriggerType.java b/ff-base/src/main/java/com/ff/base/enums/TriggerType.java deleted file mode 100644 index 86edf54..0000000 --- a/ff-base/src/main/java/com/ff/base/enums/TriggerType.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ff.base.enums; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; - -/** - * 触发类型 - * - * @author shi - * @date 2025/04/09 - */ -@Getter -@AllArgsConstructor -public enum TriggerType { - MANUAL(1, "用户调用手动触发"), - TIMER(2, "定时器触发"); - - private final int code; - private final String description; -} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java b/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java deleted file mode 100644 index 54946da..0000000 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.ff.base.system.domain; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; -import com.ff.base.core.domain.BaseEntity; - -/** - * 系统访问记录表 sys_logininfor - * - * @author ff - */ -public class SysLogininfor extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** ID */ - @Excel(name = "序号", cellType = ColumnType.NUMERIC) - @JsonSerialize(using = ToStringSerializer.class) - private Long infoId; - - /** 用户账号 */ - @Excel(name = "用户账号") - private String userName; - - /** 登录状态 0成功 1失败 */ - @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败") - private String status; - - /** 登录IP地址 */ - @Excel(name = "登录地址") - private String ipaddr; - - /** 登录地点 */ - @Excel(name = "登录地点") - private String loginLocation; - - /** 浏览器类型 */ - @Excel(name = "浏览器") - private String browser; - - /** 操作系统 */ - @Excel(name = "操作系统") - private String os; - - /** 提示消息 */ - @Excel(name = "提示消息") - private String msg; - - /** 访问时间 */ - - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Long loginTime; - - public Long getInfoId() - { - return infoId; - } - - public void setInfoId(Long infoId) - { - this.infoId = infoId; - } - - public String getUserName() - { - return userName; - } - - public void setUserName(String userName) - { - this.userName = userName; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getIpaddr() - { - return ipaddr; - } - - public void setIpaddr(String ipaddr) - { - this.ipaddr = ipaddr; - } - - public String getLoginLocation() - { - return loginLocation; - } - - public void setLoginLocation(String loginLocation) - { - this.loginLocation = loginLocation; - } - - public String getBrowser() - { - return browser; - } - - public void setBrowser(String browser) - { - this.browser = browser; - } - - public String getOs() - { - return os; - } - - public void setOs(String os) - { - this.os = os; - } - - public String getMsg() - { - return msg; - } - - public void setMsg(String msg) - { - this.msg = msg; - } - - public Long getLoginTime() - { - return loginTime; - } - - public void setLoginTime(Long loginTime) - { - this.loginTime = loginTime; - } -} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java b/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java deleted file mode 100644 index b78d591..0000000 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java +++ /dev/null @@ -1,279 +0,0 @@ -package com.ff.base.system.domain; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.core.domain.BaseEntity; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; -import java.util.ArrayList; -import java.util.List; - -/** - * 菜单权限表 sys_menu - * - * @author ff - */ -public class SysMenu extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 菜单ID */ - @JsonSerialize(using = ToStringSerializer.class) - private Long menuId; - - /** 菜单名称 */ - private String menuName; - - /** 父菜单名称 */ - private String parentName; - - /** 父菜单ID */ - @JsonSerialize(using = ToStringSerializer.class) - private Long parentId; - - /** 显示顺序 */ - private Integer orderNum; - - /** 路由地址 */ - private String path; - - /** 组件路径 */ - private String component; - - /** 路由参数 */ - private String query; - - /** 路由名称,默认和路由地址相同的驼峰格式(注意:因为vue3版本的router会删除名称相同路由,为避免名字的冲突,特殊情况可以自定义) */ - private String routeName; - - /** 是否为外链(0是 1否) */ - private String isFrame; - - /** 是否缓存(0缓存 1不缓存) */ - private String isCache; - - /** 类型(M目录 C菜单 F按钮) */ - private String menuType; - - /** 显示状态(0显示 1隐藏) */ - private String visible; - - /** 菜单状态(0正常 1停用) */ - private String status; - - /** 权限字符串 */ - private String perms; - - /** 菜单图标 */ - private String icon; - - /** 子菜单 */ - private List children = new ArrayList(); - @JsonSerialize(using = ToStringSerializer.class) - public Long getMenuId() - { - return menuId; - } - - public void setMenuId(Long menuId) - { - this.menuId = menuId; - } - - @NotBlank(message = "菜单名称不能为空") - @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符") - public String getMenuName() - { - return menuName; - } - - public void setMenuName(String menuName) - { - this.menuName = menuName; - } - - public String getParentName() - { - return parentName; - } - - public void setParentName(String parentName) - { - this.parentName = parentName; - } - - public Long getParentId() - { - return parentId; - } - - public void setParentId(Long parentId) - { - this.parentId = parentId; - } - - @NotNull(message = "显示顺序不能为空") - public Integer getOrderNum() - { - return orderNum; - } - - public void setOrderNum(Integer orderNum) - { - this.orderNum = orderNum; - } - - @Size(min = 0, max = 200, message = "路由地址不能超过200个字符") - public String getPath() - { - return path; - } - - public void setPath(String path) - { - this.path = path; - } - - @Size(min = 0, max = 200, message = "组件路径不能超过255个字符") - public String getComponent() - { - return component; - } - - public void setComponent(String component) - { - this.component = component; - } - - public String getQuery() - { - return query; - } - - public void setQuery(String query) - { - this.query = query; - } - - public String getRouteName() - { - return routeName; - } - - public void setRouteName(String routeName) - { - this.routeName = routeName; - } - - public String getIsFrame() - { - return isFrame; - } - - public void setIsFrame(String isFrame) - { - this.isFrame = isFrame; - } - - public String getIsCache() - { - return isCache; - } - - public void setIsCache(String isCache) - { - this.isCache = isCache; - } - - @NotBlank(message = "菜单类型不能为空") - public String getMenuType() - { - return menuType; - } - - public void setMenuType(String menuType) - { - this.menuType = menuType; - } - - public String getVisible() - { - return visible; - } - - public void setVisible(String visible) - { - this.visible = visible; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符") - public String getPerms() - { - return perms; - } - - public void setPerms(String perms) - { - this.perms = perms; - } - - public String getIcon() - { - return icon; - } - - public void setIcon(String icon) - { - this.icon = icon; - } - - public List getChildren() - { - return children; - } - - public void setChildren(List children) - { - this.children = children; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("menuId", getMenuId()) - .append("menuName", getMenuName()) - .append("parentId", getParentId()) - .append("orderNum", getOrderNum()) - .append("path", getPath()) - .append("component", getComponent()) - .append("query", getQuery()) - .append("routeName", getRouteName()) - .append("isFrame", getIsFrame()) - .append("IsCache", getIsCache()) - .append("menuType", getMenuType()) - .append("visible", getVisible()) - .append("status ", getStatus()) - .append("perms", getPerms()) - .append("icon", getIcon()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } -} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java b/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java deleted file mode 100644 index 5d07551..0000000 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.ff.base.system.domain; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; -import com.ff.base.core.domain.BaseEntity; - -/** - * 操作日志记录表 oper_log - * - * @author ff - */ -public class SysOperLog extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 日志主键 */ - @Excel(name = "操作序号", cellType = ColumnType.NUMERIC) - @JsonSerialize(using = ToStringSerializer.class) - private Long operId; - - /** 操作模块 */ - @Excel(name = "操作模块") - private String title; - - /** 业务类型(0其它 1新增 2修改 3删除) */ - @Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据") - private Integer businessType; - - /** 业务类型数组 */ - private Integer[] businessTypes; - - /** 请求方法 */ - @Excel(name = "请求方法") - private String method; - - /** 请求方式 */ - @Excel(name = "请求方式") - private String requestMethod; - - /** 操作类别(0其它 1后台用户 2手机端用户) */ - @Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户") - private Integer operatorType; - - /** 操作人员 */ - @Excel(name = "操作人员") - private String operName; - - /** 部门名称 */ - @Excel(name = "部门名称") - private String deptName; - - /** 请求url */ - @Excel(name = "请求地址") - private String operUrl; - - /** 操作地址 */ - @Excel(name = "操作地址") - private String operIp; - - /** 操作地点 */ - @Excel(name = "操作地点") - private String operLocation; - - /** 请求参数 */ - @Excel(name = "请求参数") - private String operParam; - - /** 返回参数 */ - @Excel(name = "返回参数") - private String jsonResult; - - /** 操作状态(0正常 1异常) */ - @Excel(name = "状态", readConverterExp = "0=正常,1=异常") - private Integer status; - - /** 错误消息 */ - @Excel(name = "错误消息") - private String errorMsg; - - /** 操作时间 */ - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Long operTime; - - /** 消耗时间 */ - @Excel(name = "消耗时间", suffix = "毫秒") - private Long costTime; - - public Long getOperId() - { - return operId; - } - - public void setOperId(Long operId) - { - this.operId = operId; - } - - public String getTitle() - { - return title; - } - - public void setTitle(String title) - { - this.title = title; - } - - public Integer getBusinessType() - { - return businessType; - } - - public void setBusinessType(Integer businessType) - { - this.businessType = businessType; - } - - public Integer[] getBusinessTypes() - { - return businessTypes; - } - - public void setBusinessTypes(Integer[] businessTypes) - { - this.businessTypes = businessTypes; - } - - public String getMethod() - { - return method; - } - - public void setMethod(String method) - { - this.method = method; - } - - public String getRequestMethod() - { - return requestMethod; - } - - public void setRequestMethod(String requestMethod) - { - this.requestMethod = requestMethod; - } - - public Integer getOperatorType() - { - return operatorType; - } - - public void setOperatorType(Integer operatorType) - { - this.operatorType = operatorType; - } - - public String getOperName() - { - return operName; - } - - public void setOperName(String operName) - { - this.operName = operName; - } - - public String getDeptName() - { - return deptName; - } - - public void setDeptName(String deptName) - { - this.deptName = deptName; - } - - public String getOperUrl() - { - return operUrl; - } - - public void setOperUrl(String operUrl) - { - this.operUrl = operUrl; - } - - public String getOperIp() - { - return operIp; - } - - public void setOperIp(String operIp) - { - this.operIp = operIp; - } - - public String getOperLocation() - { - return operLocation; - } - - public void setOperLocation(String operLocation) - { - this.operLocation = operLocation; - } - - public String getOperParam() - { - return operParam; - } - - public void setOperParam(String operParam) - { - this.operParam = operParam; - } - - public String getJsonResult() - { - return jsonResult; - } - - public void setJsonResult(String jsonResult) - { - this.jsonResult = jsonResult; - } - - public Integer getStatus() - { - return status; - } - - public void setStatus(Integer status) - { - this.status = status; - } - - public String getErrorMsg() - { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) - { - this.errorMsg = errorMsg; - } - - public Long getOperTime() - { - return operTime; - } - - public void setOperTime(Long operTime) - { - this.operTime = operTime; - } - - public Long getCostTime() - { - return costTime; - } - - public void setCostTime(Long costTime) - { - this.costTime = costTime; - } -} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java b/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java deleted file mode 100644 index a7122bc..0000000 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java +++ /dev/null @@ -1,245 +0,0 @@ -package com.ff.base.system.domain; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; -import com.ff.base.core.domain.BaseEntity; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; -import java.util.Set; - -/** - * 角色表 sys_role - * - * @author ff - */ -public class SysRole extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 角色ID */ - @Excel(name = "角色序号", cellType = ColumnType.NUMERIC) - @JsonSerialize(using = ToStringSerializer.class) - private Long roleId; - - /** 角色名称 */ - @Excel(name = "角色名称") - private String roleName; - - /** 角色权限 */ - @Excel(name = "角色权限") - private String roleKey; - - /** 角色排序 */ - @Excel(name = "角色排序") - private Integer roleSort; - - /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ - @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") - private String dataScope; - - /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */ - private boolean menuCheckStrictly; - - /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */ - private boolean deptCheckStrictly; - - /** 角色状态(0正常 1停用) */ - @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用") - private String status; - - /** 删除标志(0代表存在 2代表删除) */ - private String delFlag; - - /** 用户是否存在此角色标识 默认不存在 */ - private boolean flag = false; - - /** 菜单组 */ - private Long[] menuIds; - - /** 部门组(数据权限) */ - private Long[] deptIds; - - /** 角色菜单权限 */ - private Set permissions; - - public SysRole() - { - - } - - public SysRole(Long roleId) - { - this.roleId = roleId; - } - @JsonSerialize(using = ToStringSerializer.class) - public Long getRoleId() - { - return roleId; - } - - public void setRoleId(Long roleId) - { - this.roleId = roleId; - } - - public boolean isAdmin() - { - return isAdmin(this.roleId); - } - - public static boolean isAdmin(Long roleId) - { - return roleId != null && 1L == roleId; - } - - @NotBlank(message = "角色名称不能为空") - @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") - public String getRoleName() - { - return roleName; - } - - public void setRoleName(String roleName) - { - this.roleName = roleName; - } - - @NotBlank(message = "权限字符不能为空") - @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") - public String getRoleKey() - { - return roleKey; - } - - public void setRoleKey(String roleKey) - { - this.roleKey = roleKey; - } - - @NotNull(message = "显示顺序不能为空") - public Integer getRoleSort() - { - return roleSort; - } - - public void setRoleSort(Integer roleSort) - { - this.roleSort = roleSort; - } - - public String getDataScope() - { - return dataScope; - } - - public void setDataScope(String dataScope) - { - this.dataScope = dataScope; - } - - public boolean isMenuCheckStrictly() - { - return menuCheckStrictly; - } - - public void setMenuCheckStrictly(boolean menuCheckStrictly) - { - this.menuCheckStrictly = menuCheckStrictly; - } - - public boolean isDeptCheckStrictly() - { - return deptCheckStrictly; - } - - public void setDeptCheckStrictly(boolean deptCheckStrictly) - { - this.deptCheckStrictly = deptCheckStrictly; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getDelFlag() - { - return delFlag; - } - - public void setDelFlag(String delFlag) - { - this.delFlag = delFlag; - } - - public boolean isFlag() - { - return flag; - } - - public void setFlag(boolean flag) - { - this.flag = flag; - } - - public Long[] getMenuIds() - { - return menuIds; - } - - public void setMenuIds(Long[] menuIds) - { - this.menuIds = menuIds; - } - - public Long[] getDeptIds() - { - return deptIds; - } - - public void setDeptIds(Long[] deptIds) - { - this.deptIds = deptIds; - } - - public Set getPermissions() - { - return permissions; - } - - public void setPermissions(Set permissions) - { - this.permissions = permissions; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("roleId", getRoleId()) - .append("roleName", getRoleName()) - .append("roleKey", getRoleKey()) - .append("roleSort", getRoleSort()) - .append("dataScope", getDataScope()) - .append("menuCheckStrictly", isMenuCheckStrictly()) - .append("deptCheckStrictly", isDeptCheckStrictly()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } -} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUserOnline.java b/ff-base/src/main/java/com/ff/base/system/domain/SysUserOnline.java deleted file mode 100644 index 8d879d2..0000000 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUserOnline.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.ff.base.system.domain; - -/** - * 当前在线会话 - * - * @author ff - */ -public class SysUserOnline -{ - /** 会话编号 */ - private String tokenId; - - /** 部门名称 */ - private String deptName; - - /** 用户名称 */ - private String userName; - - /** 登录IP地址 */ - private String ipaddr; - - /** 登录地址 */ - private String loginLocation; - - /** 浏览器类型 */ - private String browser; - - /** 操作系统 */ - private String os; - - /** 登录时间 */ - private Long loginTime; - - public String getTokenId() - { - return tokenId; - } - - public void setTokenId(String tokenId) - { - this.tokenId = tokenId; - } - - public String getDeptName() - { - return deptName; - } - - public void setDeptName(String deptName) - { - this.deptName = deptName; - } - - public String getUserName() - { - return userName; - } - - public void setUserName(String userName) - { - this.userName = userName; - } - - public String getIpaddr() - { - return ipaddr; - } - - public void setIpaddr(String ipaddr) - { - this.ipaddr = ipaddr; - } - - public String getLoginLocation() - { - return loginLocation; - } - - public void setLoginLocation(String loginLocation) - { - this.loginLocation = loginLocation; - } - - public String getBrowser() - { - return browser; - } - - public void setBrowser(String browser) - { - this.browser = browser; - } - - public String getOs() - { - return os; - } - - public void setOs(String os) - { - this.os = os; - } - - public Long getLoginTime() - { - return loginTime; - } - - public void setLoginTime(Long loginTime) - { - this.loginTime = loginTime; - } -} diff --git a/ff-bean/comp-redis/pom.xml b/ff-bean/comp-redis/pom.xml new file mode 100644 index 0000000..477d53e --- /dev/null +++ b/ff-bean/comp-redis/pom.xml @@ -0,0 +1,81 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + comp-redis + 0.0.1 + comp-redis + jar + + + + + + + org.projectlombok + lombok + provided + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + comp-redis + + + diff --git a/ff-bean/comp-redis/src/main/java/com/ff/redis/GRedisCache.java b/ff-bean/comp-redis/src/main/java/com/ff/redis/GRedisCache.java new file mode 100644 index 0000000..a30b333 --- /dev/null +++ b/ff-bean/comp-redis/src/main/java/com/ff/redis/GRedisCache.java @@ -0,0 +1,243 @@ +package com.ff.redis; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.BoundSetOperations; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.concurrent.TimeUnit; + +/** + * spring redis 工具类 + * + * @author ff + **/ +@SuppressWarnings(value = {"unchecked", "rawtypes"}) +@Component +public class GRedisCache { + @Autowired + public RedisTemplate redisTemplate; + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + */ + public void setCacheObject(final String key, final T value) { + redisTemplate.opsForValue().set(key, value); + } + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + * @param timeout 时间 + * @param timeUnit 时间颗粒度 + */ + public void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) { + redisTemplate.opsForValue().set(key, value, timeout, timeUnit); + } + + /** + * 设置有效时间 + * + * @param key Redis键 + * @param timeout 超时时间 + * @return true=设置成功;false=设置失败 + */ + public boolean expire(final String key, final long timeout) { + return expire(key, timeout, TimeUnit.SECONDS); + } + + /** + * 设置有效时间 + * + * @param key Redis键 + * @param timeout 超时时间 + * @param unit 时间单位 + * @return true=设置成功;false=设置失败 + */ + public boolean expire(final String key, final long timeout, final TimeUnit unit) { + return redisTemplate.expire(key, timeout, unit); + } + + /** + * 获取有效时间 + * + * @param key Redis键 + * @return 有效时间 + */ + public long getExpire(final String key) { + return redisTemplate.getExpire(key); + } + + /** + * 判断 key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + /** + * 获得缓存的基本对象。 + * + * @param key 缓存键值 + * @return 缓存键值对应的数据 + */ + public T getCacheObject(final String key) { + ValueOperations operation = redisTemplate.opsForValue(); + return operation.get(key); + } + + /** + * 删除单个对象 + * + * @param key + */ + public boolean deleteObject(final String key) { + return redisTemplate.delete(key); + } + + /** + * 删除集合对象 + * + * @param collection 多个对象 + * @return + */ + public boolean deleteObject(final Collection collection) { + return redisTemplate.delete(collection) > 0; + } + + /** + * 缓存List数据 + * + * @param key 缓存的键值 + * @param dataList 待缓存的List数据 + * @return 缓存的对象 + */ + public long setCacheList(final String key, final List dataList) { + Long count = redisTemplate.opsForList().rightPushAll(key, dataList); + return count == null ? 0 : count; + } + + /** + * 获得缓存的list对象 + * + * @param key 缓存的键值 + * @return 缓存键值对应的数据 + */ + public List getCacheList(final String key) { + return redisTemplate.opsForList().range(key, 0, -1); + } + + /** + * 缓存Set + * + * @param key 缓存键值 + * @param dataSet 缓存的数据 + * @return 缓存数据的对象 + */ + public BoundSetOperations setCacheSet(final String key, final Set dataSet) { + BoundSetOperations setOperation = redisTemplate.boundSetOps(key); + Iterator it = dataSet.iterator(); + while (it.hasNext()) { + setOperation.add(it.next()); + } + return setOperation; + } + + /** + * 获得缓存的set + * + * @param key + * @return + */ + public Set getCacheSet(final String key) { + return redisTemplate.opsForSet().members(key); + } + + /** + * 缓存Map + * + * @param key + * @param dataMap + */ + public void setCacheMap(final String key, final Map dataMap) { + if (dataMap != null) { + redisTemplate.opsForHash().putAll(key, dataMap); + } + } + + /** + * 获得缓存的Map + * + * @param key + * @return + */ + public Map getCacheMap(final String key) { + return redisTemplate.opsForHash().entries(key); + } + + /** + * 往Hash中存入数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @param value 值 + */ + public void setCacheMapValue(final String key, final String hKey, final T value) { + redisTemplate.opsForHash().put(key, hKey, value); + } + + /** + * 获取Hash中的数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @return Hash中的对象 + */ + public T getCacheMapValue(final String key, final String hKey) { + HashOperations opsForHash = redisTemplate.opsForHash(); + return opsForHash.get(key, hKey); + } + + /** + * 获取多个Hash中的数据 + * + * @param key Redis键 + * @param hKeys Hash键集合 + * @return Hash对象集合 + */ + public List getMultiCacheMapValue(final String key, final Collection hKeys) { + return redisTemplate.opsForHash().multiGet(key, hKeys); + } + + /** + * 删除Hash中的某条数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @return 是否成功 + */ + public boolean deleteCacheMapValue(final String key, final String hKey) { + return redisTemplate.opsForHash().delete(key, hKey) > 0; + } + + /** + * 获得缓存的基本对象列表 + * + * @param pattern 字符串前缀 + * @return 对象列表 + */ + public Collection keys(final String pattern) { + return redisTemplate.keys(pattern); + } +} diff --git a/ff-bean/ff-domain/pom.xml b/ff-bean/ff-domain/pom.xml new file mode 100644 index 0000000..6f5a2bc --- /dev/null +++ b/ff-bean/ff-domain/pom.xml @@ -0,0 +1,86 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + ff-domain + 0.0.1 + ff-domain + jar + + + + + + com.ff + ff-util + + + + org.projectlombok + lombok + provided + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + com.baomidou + mybatis-plus-boot-starter + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + ff-domain + + + diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentCommission.java similarity index 55% rename from ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentCommission.java index c7bf945..a215e3d 100644 --- a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentCommission.java @@ -1,14 +1,15 @@ package com.ff.agent.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 代理佣金管理 对象 ff_tenant_agent_commission * @@ -19,11 +20,12 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgentCommission extends BaseEntity -{ +public class TenantAgentCommission extends BaseEntity { private static final long serialVersionUID = 1L; - /** $column.columnComment */ + /** + * $column.columnComment + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; @@ -33,49 +35,60 @@ public class TenantAgentCommission extends BaseEntity @JsonSerialize(using = ToStringSerializer.class) private Long agentId; - /** 来源id */ - @Excel(name = "来源id") + /** + * 来源id + */ @JsonSerialize(using = ToStringSerializer.class) private Long sourceId; - /** 来源类型 CommissionSourceType */ - @Excel(name = "来源类型 CommissionSourceType") + /** + * 来源类型 CommissionSourceType + */ private Integer sourceType; - /** 佣金类型 ff_tenant_agent_commission_type commissionType */ - @Excel(name = "佣金类型 commissionType") + /** + * 佣金类型 ff_tenant_agent_commission_type commissionType + */ private Integer commissionType; - /** 币种 */ - @Excel(name = "币种") + /** + * 币种 + */ private String currencyCode; - /** 平台代码 */ - @Excel(name = "平台代码") + /** + * 平台代码 + */ private String platformCode; - /** 成本比例 */ - @Excel(name = "成本比例") + /** + * 成本比例 + */ private BigDecimal costBalance; - /** 商户比例 */ - @Excel(name = "商户比例") + /** + * 商户比例 + */ private BigDecimal merchantBalance; - /** 充值金额 */ - @Excel(name = "充值金额") + /** + * 充值金额 + */ private BigDecimal balance; - /** 佣金金额 */ - @Excel(name = "佣金金额") + /** + * 佣金金额 + */ private BigDecimal commissionBalance; - /** USDT金额 */ - @Excel(name = "USDT金额") + /** + * USDT金额 + */ private BigDecimal usdtBalance; - /** 佣金审批状态 ff_tenant_agent_approval_status 0 未提现 1 提现中 2 已提现 */ - @Excel(name = "佣金审批状态 0 未提现 1 提现中 1 已提现") + /** + * 佣金审批状态 ff_tenant_agent_approval_status 0 未提现 1 提现中 1 已提现 + */ private Integer approvalStatus; diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInvite.java similarity index 55% rename from ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInvite.java index b26acf7..10c7934 100644 --- a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInvite.java @@ -1,17 +1,15 @@ package com.ff.agent.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 代理邀请链接对象 ff_tenant_agent_invite * @@ -22,53 +20,64 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgentInvite extends BaseEntity -{ +public class TenantAgentInvite extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 代理id */ - @Excel(name = "代理id") + /** + * 代理id + */ @JsonSerialize(using = ToStringSerializer.class) private Long agentId; - /** 缴费金额 */ - @Excel(name = "缴费金额") + /** + * 缴费金额 + */ private BigDecimal balance; - /** 邀请类型 1 租户 2代理 ff_agent_invite_type */ - @Excel(name = "邀请类型 1 租户 2代理 ") + /** + * 邀请类型 1 租户 2代理 ff_agent_invite_type + */ private Integer inviteType; - /** 额度类型 TenantQuotaType 枚举 */ - @Excel(name = "额度类型 TenantQuotaType 枚举") + /** + * 额度类型 TenantQuotaType 枚举 + */ private Integer quotaType; - /** 买分比例 */ - @Excel(name = "买分比例") + /** + * 买分比例 + */ private BigDecimal scoreRatio; - /** 租户类型 TenantType 枚举 */ - @Excel(name = "租户类型 TenantType 枚举") + /** + * 租户类型 TenantType 枚举 + */ private Integer tenantType; - /** 透支比例 */ - @Excel(name = "透支比例") + /** + * 透支比例 + */ private BigDecimal depositRatio; - /** 信誉额度 */ - @Excel(name = "信誉额度") + /** + * 信誉额度 + */ private BigDecimal realBalance; - /** 邀请码 */ - @Excel(name = "邀请码") + /** + * 邀请码 + */ private String inviteCode; - /** 邀请链接 */ - @Excel(name = "邀请链接") + /** + * 邀请链接 + */ private String inviteUrl; } diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java similarity index 60% rename from ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java index 1f97b24..0344a82 100644 --- a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java @@ -1,17 +1,15 @@ package com.ff.agent.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 平台邀请注册成本管理对象 ff_tenant_agent_invite_platform * @@ -22,32 +20,38 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgentInvitePlatform extends BaseEntity -{ +public class TenantAgentInvitePlatform extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ private Long id; - /** 邀请码id */ - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "邀请码id", width = 30, dateFormat = "yyyy-MM-dd") + /** + * 邀请码id + */ + @JsonSerialize(using = ToStringSerializer.class) private Long inviteId; - /** 平台编码 */ - @Excel(name = "平台编码") + /** + * 平台编码 + */ private String platformCode; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 成本 */ - @Excel(name = "成本") + /** + * 成本 + */ private BigDecimal cost; - /** 使用成本 */ - @Excel(name = "使用成本") + /** + * 使用成本 + */ private BigDecimal useCost; diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java similarity index 61% rename from ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java index e6d3b6f..f01b70a 100644 --- a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java @@ -1,17 +1,15 @@ package com.ff.agent.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 代理邀请注册对象 ff_tenant_agent_invite_register * @@ -22,50 +20,60 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgentInviteRegister extends BaseEntity -{ +public class TenantAgentInviteRegister extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 代理id */ - @Excel(name = "代理id") + /** + * 代理id + */ @JsonSerialize(using = ToStringSerializer.class) private Long agentId; - /** 邀请码 */ - @Excel(name = "邀请码") + /** + * 邀请码 + */ private String inviteCode; - /** 账号 */ - @Excel(name = "账号") + /** + * 账号 + */ private String account; - /** 密码 */ - @Excel(name = "密码") + /** + * 密码 + */ private String password; - /** 缴费金额 */ - @Excel(name = "缴费金额") + /** + * 缴费金额 + */ private BigDecimal balance; - /** 注册时间 */ - @Excel(name = "注册时间") + /** + * 注册时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long registerTime; - /** 注册IP */ - @Excel(name = "注册IP") + /** + * 注册IP + */ private String registerIp; - /** 注册ip的城市 */ - @Excel(name = "注册ip的城市") + /** + * 注册ip的城市 + */ private String registerIpCity; - /** 状态 1 待激活 2已激活 InviterRegisterStatus 枚举*/ - @Excel(name = "状态 1 待激活 2已激活") + /** + * 状态 1 待激活 2已激活 InviterRegisterStatus 枚举 + */ private Integer status; /** diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java similarity index 67% rename from ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java index 23b73ce..56e1061 100644 --- a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java @@ -1,17 +1,15 @@ package com.ff.agent.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 代理申请提现审批管理对象 ff_tenant_agent_withdrawal * @@ -22,11 +20,12 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgentWithdrawal extends BaseEntity -{ +public class TenantAgentWithdrawal extends BaseEntity { private static final long serialVersionUID = 1L; - /** $column.columnComment */ + /** + * $column.columnComment + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; /** @@ -35,20 +34,24 @@ public class TenantAgentWithdrawal extends BaseEntity @JsonSerialize(using = ToStringSerializer.class) private Long agentId; - /** 佣金余额 */ - @Excel(name = "佣金余额") + /** + * 佣金余额 + */ private BigDecimal commissionBalance; - /** 币种协议 */ - @Excel(name = "币种协议") + /** + * 币种协议 + */ private String currencyAgreement; - /** 钱包地址 */ - @Excel(name = "钱包地址") + /** + * 钱包地址 + */ private String walletAddress; - /** 0 未提现 1 提现中 1 已提现 3 已拒绝 */ - @Excel(name = " 0 未提现 1 提现中 1 已提现 3 已拒绝") + /** + * 0 未提现 1 提现中 1 已提现 3 已拒绝 + */ private Integer approvalStatus; diff --git a/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java new file mode 100644 index 0000000..2554f3f --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java @@ -0,0 +1,72 @@ +package com.ff.agent.mapper; + +import com.ff.agent.domain.TenantAgentCommission; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 代理佣金管理 Mapper接口 + * + * @author shi + * @date 2025-02-26 + */ +public interface TenantAgentCommissionMapper { + /** + * 查询代理佣金管理 + * + * @param id 代理佣金管理 主键 + * @return 代理佣金管理 + */ + TenantAgentCommission selectTenantAgentCommissionById(Long id); + + /** + * 查询代理佣金管理 列表 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 代理佣金管理 集合 + */ + List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); + + /** + * 新增代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + + /** + * 修改代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + + /** + * 删除代理佣金管理 + * + * @param id 代理佣金管理 主键 + * @return 结果 + */ + int deleteTenantAgentCommissionById(Long id); + + /** + * 批量删除代理佣金管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentCommissionByIds(Long[] ids); + + + /** + * 获得代理佣金 + * + * @param tenantAgentCommission 租户代理佣金 + * @return {@link BigDecimal } + */ + BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission); + +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java similarity index 70% rename from ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java index 7f06873..6779a77 100644 --- a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java @@ -1,23 +1,23 @@ package com.ff.agent.mapper; -import java.util.List; import com.ff.agent.domain.TenantAgentInvite; +import java.util.List; + /** * 代理邀请链接Mapper接口 - * + * * @author shi * @date 2025-02-25 */ -public interface TenantAgentInviteMapper -{ +public interface TenantAgentInviteMapper { /** * 查询代理邀请链接 - * + * * @param id 代理邀请链接主键 * @return 代理邀请链接 */ - TenantAgentInvite selectTenantAgentInviteById(Long id); + TenantAgentInvite selectTenantAgentInviteById(Long id); /** @@ -30,41 +30,41 @@ public interface TenantAgentInviteMapper /** * 查询代理邀请链接列表 - * + * * @param tenantAgentInvite 代理邀请链接 * @return 代理邀请链接集合 */ - List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite); + List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite); /** * 新增代理邀请链接 - * + * * @param tenantAgentInvite 代理邀请链接 * @return 结果 */ - int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite); /** * 修改代理邀请链接 - * + * * @param tenantAgentInvite 代理邀请链接 * @return 结果 */ - int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite); /** * 删除代理邀请链接 - * + * * @param id 代理邀请链接主键 * @return 结果 */ - int deleteTenantAgentInviteById(Long id); + int deleteTenantAgentInviteById(Long id); /** * 批量删除代理邀请链接 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteTenantAgentInviteByIds(Long[] ids); + int deleteTenantAgentInviteByIds(Long[] ids); } diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java similarity index 64% rename from ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java index 3b292b9..ad17974 100644 --- a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java @@ -1,61 +1,61 @@ package com.ff.agent.mapper; -import java.util.List; import com.ff.agent.domain.TenantAgentInvitePlatform; +import java.util.List; + /** * 平台邀请注册成本管理Mapper接口 - * + * * @author shi * @date 2025-02-27 */ -public interface TenantAgentInvitePlatformMapper -{ +public interface TenantAgentInvitePlatformMapper { /** * 查询平台邀请注册成本管理 - * + * * @param id 平台邀请注册成本管理主键 * @return 平台邀请注册成本管理 */ - TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id); + TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id); /** * 查询平台邀请注册成本管理列表 - * + * * @param tenantAgentInvitePlatform 平台邀请注册成本管理 * @return 平台邀请注册成本管理集合 */ - List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform); + List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform); /** * 新增平台邀请注册成本管理 - * + * * @param tenantAgentInvitePlatform 平台邀请注册成本管理 * @return 结果 */ - int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); /** * 修改平台邀请注册成本管理 - * + * * @param tenantAgentInvitePlatform 平台邀请注册成本管理 * @return 结果 */ - int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); /** * 删除平台邀请注册成本管理 - * + * * @param id 平台邀请注册成本管理主键 * @return 结果 */ - int deleteTenantAgentInvitePlatformById(Long id); + int deleteTenantAgentInvitePlatformById(Long id); /** * 批量删除平台邀请注册成本管理 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteTenantAgentInvitePlatformByIds(Long[] ids); + int deleteTenantAgentInvitePlatformByIds(Long[] ids); } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java new file mode 100644 index 0000000..63a707f --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java @@ -0,0 +1,62 @@ +package com.ff.agent.mapper; + +import com.ff.agent.domain.TenantAgentInviteRegister; + +import java.util.List; + +/** + * 代理邀请注册Mapper接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface TenantAgentInviteRegisterMapper { + /** + * 查询代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 代理邀请注册 + */ + TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id); + + + /** + * 查询代理邀请注册列表 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 代理邀请注册集合 + */ + List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 新增代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 修改代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 删除代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterById(Long id); + + /** + * 批量删除代理邀请注册 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java similarity index 66% rename from ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java index fa2e10f..0d19bd6 100644 --- a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java @@ -1,61 +1,61 @@ package com.ff.agent.mapper; -import java.util.List; import com.ff.agent.domain.TenantAgentWithdrawal; +import java.util.List; + /** * 代理申请提现审批管理Mapper接口 - * + * * @author shi * @date 2025-02-26 */ -public interface TenantAgentWithdrawalMapper -{ +public interface TenantAgentWithdrawalMapper { /** * 查询代理申请提现审批管理 - * + * * @param id 代理申请提现审批管理主键 * @return 代理申请提现审批管理 */ - TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id); + TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id); /** * 查询代理申请提现审批管理列表 - * + * * @param tenantAgentWithdrawal 代理申请提现审批管理 * @return 代理申请提现审批管理集合 */ - List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal); + List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal); /** * 新增代理申请提现审批管理 - * + * * @param tenantAgentWithdrawal 代理申请提现审批管理 * @return 结果 */ - int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); /** * 修改代理申请提现审批管理 - * + * * @param tenantAgentWithdrawal 代理申请提现审批管理 * @return 结果 */ - int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); /** * 删除代理申请提现审批管理 - * + * * @param id 代理申请提现审批管理主键 * @return 结果 */ - int deleteTenantAgentWithdrawalById(Long id); + int deleteTenantAgentWithdrawalById(Long id); /** * 批量删除代理申请提现审批管理 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteTenantAgentWithdrawalByIds(Long[] ids); + int deleteTenantAgentWithdrawalByIds(Long[] ids); } diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java similarity index 50% rename from ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java index ce5277a..fdae01c 100644 --- a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java @@ -1,32 +1,32 @@ package com.ff.agent.service; +import com.ff.agent.domain.TenantAgentCommission; + import java.math.BigDecimal; import java.util.List; -import com.ff.agent.domain.TenantAgentCommission; /** * 代理佣金管理 Service接口 - * + * * @author shi * @date 2025-02-26 */ -public interface ITenantAgentCommissionService -{ +public interface ITenantAgentCommissionService { /** - * 查询代理佣金管理 - * + * 查询代理佣金管理 + * * @param id 代理佣金管理 主键 - * @return 代理佣金管理 + * @return 代理佣金管理 */ - TenantAgentCommission selectTenantAgentCommissionById(Long id); + TenantAgentCommission selectTenantAgentCommissionById(Long id); /** * 查询代理佣金管理 列表 - * - * @param tenantAgentCommission 代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 * @return 代理佣金管理 集合 */ - List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); + List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); /** @@ -38,34 +38,34 @@ public interface ITenantAgentCommissionService BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission); /** - * 新增代理佣金管理 - * - * @param tenantAgentCommission 代理佣金管理 + * 新增代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 * @return 结果 */ - int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission); /** - * 修改代理佣金管理 - * - * @param tenantAgentCommission 代理佣金管理 + * 修改代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 * @return 结果 */ - int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission); /** - * 批量删除代理佣金管理 - * + * 批量删除代理佣金管理 + * * @param ids 需要删除的代理佣金管理 主键集合 * @return 结果 */ - int deleteTenantAgentCommissionByIds(Long[] ids); + int deleteTenantAgentCommissionByIds(Long[] ids); /** * 删除代理佣金管理 信息 - * + * * @param id 代理佣金管理 主键 * @return 结果 */ - int deleteTenantAgentCommissionById(Long id); + int deleteTenantAgentCommissionById(Long id); } diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java similarity index 65% rename from ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java index 47ca2bb..fd1e89a 100644 --- a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java @@ -1,61 +1,61 @@ package com.ff.agent.service; -import java.util.List; import com.ff.agent.domain.TenantAgentInvitePlatform; +import java.util.List; + /** * 平台邀请注册成本管理Service接口 - * + * * @author shi * @date 2025-02-27 */ -public interface ITenantAgentInvitePlatformService -{ +public interface ITenantAgentInvitePlatformService { /** * 查询平台邀请注册成本管理 - * + * * @param id 平台邀请注册成本管理主键 * @return 平台邀请注册成本管理 */ - TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id); + TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id); /** * 查询平台邀请注册成本管理列表 - * + * * @param tenantAgentInvitePlatform 平台邀请注册成本管理 * @return 平台邀请注册成本管理集合 */ - List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform); + List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform); /** * 新增平台邀请注册成本管理 - * + * * @param tenantAgentInvitePlatform 平台邀请注册成本管理 * @return 结果 */ - int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); /** * 修改平台邀请注册成本管理 - * + * * @param tenantAgentInvitePlatform 平台邀请注册成本管理 * @return 结果 */ - int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); /** * 批量删除平台邀请注册成本管理 - * + * * @param ids 需要删除的平台邀请注册成本管理主键集合 * @return 结果 */ - int deleteTenantAgentInvitePlatformByIds(Long[] ids); + int deleteTenantAgentInvitePlatformByIds(Long[] ids); /** * 删除平台邀请注册成本管理信息 - * + * * @param id 平台邀请注册成本管理主键 * @return 结果 */ - int deleteTenantAgentInvitePlatformById(Long id); + int deleteTenantAgentInvitePlatformById(Long id); } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java new file mode 100644 index 0000000..9ad74d7 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java @@ -0,0 +1,62 @@ +package com.ff.agent.service; + +import com.ff.agent.domain.TenantAgentInviteRegister; + +import java.util.List; + +/** + * 代理邀请注册Service接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface ITenantAgentInviteRegisterService { + /** + * 查询代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 代理邀请注册 + */ + TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id); + + /** + * 查询代理邀请注册列表 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 代理邀请注册集合 + */ + List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister); + + + /** + * 新增代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 修改代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 批量删除代理邀请注册 + * + * @param ids 需要删除的代理邀请注册主键集合 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterByIds(Long[] ids); + + /** + * 删除代理邀请注册信息 + * + * @param id 代理邀请注册主键 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java similarity index 66% rename from ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java index 0b5afd9..41f0083 100644 --- a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java @@ -1,23 +1,23 @@ package com.ff.agent.service; -import java.util.List; import com.ff.agent.domain.TenantAgentInvite; +import java.util.List; + /** * 代理邀请链接Service接口 - * + * * @author shi * @date 2025-02-25 */ -public interface ITenantAgentInviteService -{ +public interface ITenantAgentInviteService { /** * 查询代理邀请链接 - * + * * @param id 代理邀请链接主键 * @return 代理邀请链接 */ - TenantAgentInvite selectTenantAgentInviteById(Long id); + TenantAgentInvite selectTenantAgentInviteById(Long id); /** @@ -30,48 +30,41 @@ public interface ITenantAgentInviteService /** * 查询代理邀请链接列表 - * + * * @param tenantAgentInvite 代理邀请链接 * @return 代理邀请链接集合 */ - List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite); + List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite); /** * 新增代理邀请链接 - * + * * @param tenantAgentInvite 代理邀请链接 * @return 结果 */ - int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite); - - /** - * 获取邀请码 - * - * @return {@link String } - */ - String getInviteCode(); + int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite); /** * 修改代理邀请链接 - * + * * @param tenantAgentInvite 代理邀请链接 * @return 结果 */ - int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite); /** * 批量删除代理邀请链接 - * + * * @param ids 需要删除的代理邀请链接主键集合 * @return 结果 */ - int deleteTenantAgentInviteByIds(Long[] ids); + int deleteTenantAgentInviteByIds(Long[] ids); /** * 删除代理邀请链接信息 - * + * * @param id 代理邀请链接主键 * @return 结果 */ - int deleteTenantAgentInviteById(Long id); + int deleteTenantAgentInviteById(Long id); } diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java similarity index 67% rename from ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java index e4dfc15..f1f46dd 100644 --- a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java @@ -1,61 +1,61 @@ package com.ff.agent.service; -import java.util.List; import com.ff.agent.domain.TenantAgentWithdrawal; +import java.util.List; + /** * 代理申请提现审批管理Service接口 - * + * * @author shi * @date 2025-02-26 */ -public interface ITenantAgentWithdrawalService -{ +public interface ITenantAgentWithdrawalService { /** * 查询代理申请提现审批管理 - * + * * @param id 代理申请提现审批管理主键 * @return 代理申请提现审批管理 */ - TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id); + TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id); /** * 查询代理申请提现审批管理列表 - * + * * @param tenantAgentWithdrawal 代理申请提现审批管理 * @return 代理申请提现审批管理集合 */ - List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal); + List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal); /** * 新增代理申请提现审批管理 - * + * * @param tenantAgentWithdrawal 代理申请提现审批管理 * @return 结果 */ - int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); /** * 修改代理申请提现审批管理 - * + * * @param tenantAgentWithdrawal 代理申请提现审批管理 * @return 结果 */ - int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); /** * 批量删除代理申请提现审批管理 - * + * * @param ids 需要删除的代理申请提现审批管理主键集合 * @return 结果 */ - int deleteTenantAgentWithdrawalByIds(Long[] ids); + int deleteTenantAgentWithdrawalByIds(Long[] ids); /** * 删除代理申请提现审批管理信息 - * + * * @param id 代理申请提现审批管理主键 * @return 结果 */ - int deleteTenantAgentWithdrawalById(Long id); + int deleteTenantAgentWithdrawalById(Long id); } diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java similarity index 98% rename from ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java index 4e0471c..c09d4b2 100644 --- a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java @@ -1,16 +1,16 @@ package com.ff.agent.service.impl; +import cn.hutool.core.util.IdUtil; +import com.ff.agent.domain.TenantAgentCommission; +import com.ff.agent.mapper.TenantAgentCommissionMapper; +import com.ff.agent.service.ITenantAgentCommissionService; +import com.ff.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.math.BigDecimal; import java.util.List; -import cn.hutool.core.util.IdUtil; -import com.ff.base.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ff.agent.mapper.TenantAgentCommissionMapper; -import com.ff.agent.domain.TenantAgentCommission; -import com.ff.agent.service.ITenantAgentCommissionService; - /** * 代理佣金管理 Service业务层处理 * diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java similarity index 98% rename from ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java index 768aa50..162b948 100644 --- a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java @@ -1,13 +1,14 @@ package com.ff.agent.service.impl; -import java.util.List; -import com.ff.base.utils.DateUtils; +import cn.hutool.core.util.IdUtil; +import com.ff.agent.domain.TenantAgentInvitePlatform; +import com.ff.agent.mapper.TenantAgentInvitePlatformMapper; +import com.ff.agent.service.ITenantAgentInvitePlatformService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.agent.mapper.TenantAgentInvitePlatformMapper; -import com.ff.agent.domain.TenantAgentInvitePlatform; -import com.ff.agent.service.ITenantAgentInvitePlatformService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java similarity index 74% rename from ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java index 36f3b2e..d3735d7 100644 --- a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java @@ -1,18 +1,15 @@ package com.ff.agent.service.impl; -import java.util.Collections; -import java.util.List; - import cn.hutool.core.util.IdUtil; import com.ff.agent.domain.TenantAgentInviteRegister; -import com.ff.agent.dto.TenantAgentInviteRegisterDTO; import com.ff.agent.mapper.TenantAgentInviteRegisterMapper; import com.ff.agent.service.ITenantAgentInviteRegisterService; -import com.ff.base.utils.DateUtils; -import com.ff.base.utils.uuid.IdUtils; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 代理邀请注册Service业务层处理 * @@ -20,8 +17,7 @@ import org.springframework.stereotype.Service; * @date 2025-02-25 */ @Service -public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteRegisterService -{ +public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteRegisterService { @Autowired private TenantAgentInviteRegisterMapper tenantAgentInviteRegisterMapper; @@ -32,8 +28,7 @@ public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteR * @return 代理邀请注册 */ @Override - public TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id) - { + public TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id) { return tenantAgentInviteRegisterMapper.selectTenantAgentInviteRegisterById(id); } @@ -44,21 +39,10 @@ public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteR * @return 代理邀请注册 */ @Override - public List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister) - { + public List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister) { return tenantAgentInviteRegisterMapper.selectTenantAgentInviteRegisterList(tenantAgentInviteRegister); } - /** - * 选择租户代理邀请注册列表dto - * - * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto - * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> - */ - @Override - public List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO) { - return tenantAgentInviteRegisterMapper.selectTenantAgentInviteRegisterListDTO(tenantAgentInviteRegisterDTO); - } /** * 新增代理邀请注册 @@ -67,8 +51,7 @@ public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteR * @return 结果 */ @Override - public int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister) - { + public int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister) { tenantAgentInviteRegister.setId(IdUtil.getSnowflakeNextId()); tenantAgentInviteRegister.setCreateTime(DateUtils.getNowDate()); return tenantAgentInviteRegisterMapper.insertTenantAgentInviteRegister(tenantAgentInviteRegister); @@ -81,8 +64,7 @@ public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteR * @return 结果 */ @Override - public int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister) - { + public int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister) { tenantAgentInviteRegister.setUpdateTime(DateUtils.getNowDate()); return tenantAgentInviteRegisterMapper.updateTenantAgentInviteRegister(tenantAgentInviteRegister); } @@ -94,8 +76,7 @@ public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteR * @return 结果 */ @Override - public int deleteTenantAgentInviteRegisterByIds(Long[] ids) - { + public int deleteTenantAgentInviteRegisterByIds(Long[] ids) { return tenantAgentInviteRegisterMapper.deleteTenantAgentInviteRegisterByIds(ids); } @@ -106,8 +87,7 @@ public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteR * @return 结果 */ @Override - public int deleteTenantAgentInviteRegisterById(Long id) - { + public int deleteTenantAgentInviteRegisterById(Long id) { return tenantAgentInviteRegisterMapper.deleteTenantAgentInviteRegisterById(id); } } diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java similarity index 76% rename from ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java index b87e3f2..dcde0d2 100644 --- a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java @@ -1,16 +1,14 @@ package com.ff.agent.service.impl; -import java.util.List; - import cn.hutool.core.util.IdUtil; -import com.ff.base.utils.DateUtils; -import com.ff.base.utils.NumberUtils; +import com.ff.agent.domain.TenantAgentInvite; +import com.ff.agent.mapper.TenantAgentInviteMapper; +import com.ff.agent.service.ITenantAgentInviteService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.agent.mapper.TenantAgentInviteMapper; -import com.ff.agent.domain.TenantAgentInvite; -import com.ff.agent.service.ITenantAgentInviteService; -import org.springframework.util.CollectionUtils; + +import java.util.List; /** * 代理邀请链接Service业务层处理 @@ -19,8 +17,7 @@ import org.springframework.util.CollectionUtils; * @date 2025-02-25 */ @Service -public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService -{ +public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService { @Autowired private TenantAgentInviteMapper tenantAgentInviteMapper; @@ -31,8 +28,7 @@ public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService * @return 代理邀请链接 */ @Override - public TenantAgentInvite selectTenantAgentInviteById(Long id) - { + public TenantAgentInvite selectTenantAgentInviteById(Long id) { return tenantAgentInviteMapper.selectTenantAgentInviteById(id); } @@ -44,7 +40,7 @@ public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService */ @Override public TenantAgentInvite selectTenantAgentInviteByInviteCode(String inviteCode) { - return tenantAgentInviteMapper.selectTenantAgentInviteByInviteCode( inviteCode); + return tenantAgentInviteMapper.selectTenantAgentInviteByInviteCode(inviteCode); } /** @@ -54,8 +50,7 @@ public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService * @return 代理邀请链接 */ @Override - public List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite) - { + public List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite) { return tenantAgentInviteMapper.selectTenantAgentInviteList(tenantAgentInvite); } @@ -66,38 +61,20 @@ public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService * @return 结果 */ @Override - public int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite) - { + public int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite) { tenantAgentInvite.setId(IdUtil.getSnowflakeNextId()); tenantAgentInvite.setCreateTime(DateUtils.getNowDate()); return tenantAgentInviteMapper.insertTenantAgentInvite(tenantAgentInvite); } /** - * 获取邀请码 - * - * @return {@link String } - */ - @Override - public synchronized String getInviteCode() { - String inviteCode = NumberUtils.generateRandomCode(12); - while (!CollectionUtils.isEmpty(tenantAgentInviteMapper.selectTenantAgentInviteList(TenantAgentInvite.builder() - .inviteCode(inviteCode) - .build()))) { - inviteCode = NumberUtils.generateRandomCode(12); - } - return inviteCode; - } - - /**3 * 修改代理邀请链接 * * @param tenantAgentInvite 代理邀请链接 * @return 结果 */ @Override - public int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite) - { + public int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite) { tenantAgentInvite.setUpdateTime(DateUtils.getNowDate()); return tenantAgentInviteMapper.updateTenantAgentInvite(tenantAgentInvite); } @@ -109,8 +86,7 @@ public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService * @return 结果 */ @Override - public int deleteTenantAgentInviteByIds(Long[] ids) - { + public int deleteTenantAgentInviteByIds(Long[] ids) { return tenantAgentInviteMapper.deleteTenantAgentInviteByIds(ids); } @@ -121,8 +97,7 @@ public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService * @return 结果 */ @Override - public int deleteTenantAgentInviteById(Long id) - { + public int deleteTenantAgentInviteById(Long id) { return tenantAgentInviteMapper.deleteTenantAgentInviteById(id); } } diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java similarity index 89% rename from ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java index d096828..791ee1f 100644 --- a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java @@ -1,13 +1,14 @@ package com.ff.agent.service.impl; -import java.util.List; -import com.ff.base.utils.DateUtils; +import cn.hutool.core.util.IdUtil; +import com.ff.agent.domain.TenantAgentWithdrawal; +import com.ff.agent.mapper.TenantAgentWithdrawalMapper; +import com.ff.agent.service.ITenantAgentWithdrawalService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.agent.mapper.TenantAgentWithdrawalMapper; -import com.ff.agent.domain.TenantAgentWithdrawal; -import com.ff.agent.service.ITenantAgentWithdrawalService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** @@ -17,8 +18,7 @@ import cn.hutool.core.util.IdUtil; * @date 2025-02-26 */ @Service -public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalService -{ +public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalService { @Autowired private TenantAgentWithdrawalMapper tenantAgentWithdrawalMapper; @@ -29,8 +29,7 @@ public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalS * @return 代理申请提现审批管理 */ @Override - public TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id) - { + public TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id) { return tenantAgentWithdrawalMapper.selectTenantAgentWithdrawalById(id); } @@ -41,8 +40,7 @@ public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalS * @return 代理申请提现审批管理 */ @Override - public List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal) - { + public List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal) { return tenantAgentWithdrawalMapper.selectTenantAgentWithdrawalList(tenantAgentWithdrawal); } @@ -53,8 +51,7 @@ public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalS * @return 结果 */ @Override - public int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal) - { + public int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal) { tenantAgentWithdrawal.setId(IdUtil.getSnowflakeNextId()); tenantAgentWithdrawal.setCreateTime(DateUtils.getNowDate()); return tenantAgentWithdrawalMapper.insertTenantAgentWithdrawal(tenantAgentWithdrawal); @@ -67,8 +64,7 @@ public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalS * @return 结果 */ @Override - public int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal) - { + public int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal) { tenantAgentWithdrawal.setUpdateTime(DateUtils.getNowDate()); return tenantAgentWithdrawalMapper.updateTenantAgentWithdrawal(tenantAgentWithdrawal); } @@ -80,8 +76,7 @@ public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalS * @return 结果 */ @Override - public int deleteTenantAgentWithdrawalByIds(Long[] ids) - { + public int deleteTenantAgentWithdrawalByIds(Long[] ids) { return tenantAgentWithdrawalMapper.deleteTenantAgentWithdrawalByIds(ids); } @@ -92,8 +87,7 @@ public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalS * @return 结果 */ @Override - public int deleteTenantAgentWithdrawalById(Long id) - { + public int deleteTenantAgentWithdrawalById(Long id) { return tenantAgentWithdrawalMapper.deleteTenantAgentWithdrawalById(id); } } diff --git a/ff-base/src/main/java/com/ff/base/core/domain/BaseEntity.java b/ff-bean/ff-domain/src/main/java/com/ff/base/core/domain/BaseEntity.java similarity index 76% rename from ff-base/src/main/java/com/ff/base/core/domain/BaseEntity.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/core/domain/BaseEntity.java index f0e179c..a000b5a 100644 --- a/ff-base/src/main/java/com/ff/base/core/domain/BaseEntity.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/core/domain/BaseEntity.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -23,8 +22,7 @@ import java.util.Map; @SuperBuilder @AllArgsConstructor @NoArgsConstructor -public class BaseEntity implements Serializable -{ +public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; /** @@ -32,37 +30,48 @@ public class BaseEntity implements Serializable */ private Long id; - /** 搜索值 */ + /** + * 搜索值 + */ @JsonIgnore private String searchValue; - /** 创建者 */ + /** + * 创建者 + */ private String createBy; - /** 创建时间 */ + /** + * 创建时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long createTime; - /** 更新者 */ + /** + * 更新者 + */ private String updateBy; - /** 更新时间 */ + /** + * 更新时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long updateTime; - /** 备注 */ + /** + * 备注 + */ private String remark; - /** 请求参数 */ + /** + * 请求参数 + */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map params; - - public Map getParams() - { - if (params == null) - { + public Map getParams() { + if (params == null) { params = new HashMap<>(); } return params; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysConfig.java similarity index 51% rename from ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysConfig.java index 4f14ff3..91553c9 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysConfig.java @@ -2,8 +2,6 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -16,100 +14,95 @@ import javax.validation.constraints.Size; * * @author ff */ -public class SysConfig extends BaseEntity -{ +public class SysConfig extends BaseEntity { private static final long serialVersionUID = 1L; - /** 参数主键 */ - @Excel(name = "参数主键", cellType = ColumnType.NUMERIC) + /** + * 参数主键 + */ @JsonSerialize(using = ToStringSerializer.class) private Long configId; - /** 参数名称 */ - @Excel(name = "参数名称") + /** + * 参数名称 + */ private String configName; - /** 参数键名 */ - @Excel(name = "参数键名") + /** + * 参数键名 + */ private String configKey; - /** 参数键值 */ - @Excel(name = "参数键值") + /** + * 参数键值 + */ private String configValue; - /** 系统内置(Y是 N否) */ - @Excel(name = "系统内置", readConverterExp = "Y=是,N=否") + /** + * 系统内置(Y是 N否) + */ private String configType; + @JsonSerialize(using = ToStringSerializer.class) - public Long getConfigId() - { + public Long getConfigId() { return configId; } - public void setConfigId(Long configId) - { + public void setConfigId(Long configId) { this.configId = configId; } @NotBlank(message = "参数名称不能为空") @Size(min = 0, max = 100, message = "参数名称不能超过100个字符") - public String getConfigName() - { + public String getConfigName() { return configName; } - public void setConfigName(String configName) - { + public void setConfigName(String configName) { this.configName = configName; } @NotBlank(message = "参数键名长度不能为空") @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符") - public String getConfigKey() - { + public String getConfigKey() { return configKey; } - public void setConfigKey(String configKey) - { + public void setConfigKey(String configKey) { this.configKey = configKey; } @NotBlank(message = "参数键值不能为空") @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符") - public String getConfigValue() - { + public String getConfigValue() { return configValue; } - public void setConfigValue(String configValue) - { + public void setConfigValue(String configValue) { this.configValue = configValue; } - public String getConfigType() - { + public String getConfigType() { return configType; } - public void setConfigType(String configType) - { + public void setConfigType(String configType) { this.configType = configType; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("configId", getConfigId()) - .append("configName", getConfigName()) - .append("configKey", getConfigKey()) - .append("configValue", getConfigValue()) - .append("configType", getConfigType()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("configId", getConfigId()) + .append("configName", getConfigName()) + .append("configKey", getConfigKey()) + .append("configValue", getConfigValue()) + .append("configType", getConfigType()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); } } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDatasource.java similarity index 76% rename from ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDatasource.java index 8eb1e6f..d55bb34 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDatasource.java @@ -2,7 +2,6 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; /** @@ -21,31 +20,24 @@ public class SysDatasource extends BaseEntity private Long id; /** 租户id */ - @Excel(name = "租户id") private String tenantId; /** 连接地址 */ - @Excel(name = "连接地址") private String url; /** 用户名 */ - @Excel(name = "用户名") private String username; /** 密码 */ - @Excel(name = "密码") private String password; /** 数据库驱动 */ - @Excel(name = "数据库驱动") private String driverClassName; /** 时区 */ - @Excel(name = "时区") private String timeZone; /** 状态(0 停用 1 启用) */ - @Excel(name = "状态", readConverterExp = "0=,停=用,1=,启=用") private String status; /** 时区名称 */ diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDept.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDept.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/domain/SysDept.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDept.java diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDictData.java similarity index 52% rename from ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDictData.java index 24120b7..4a4a045 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDictData.java @@ -3,9 +3,6 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.annotation.JsonView; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; -import com.ff.base.constant.UserConstants; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -18,53 +15,66 @@ import javax.validation.constraints.Size; * * @author ff */ -public class SysDictData extends BaseEntity -{ +public class SysDictData extends BaseEntity { private static final long serialVersionUID = 1L; - public interface DictDataSimpleView {}; - /** 字典编码 */ - @Excel(name = "字典编码", cellType = ColumnType.NUMERIC) + public interface DictDataSimpleView { + } + + ; + /** + * 字典编码 + */ @JsonView(DictDataSimpleView.class) @JsonSerialize(using = ToStringSerializer.class) private Long dictCode; - /** 字典排序 */ - @Excel(name = "字典排序", cellType = ColumnType.NUMERIC) + /** + * 字典排序 + */ @JsonView(DictDataSimpleView.class) @JsonSerialize(using = ToStringSerializer.class) private Long dictSort; - /** 字典标签 */ - @Excel(name = "字典标签") + /** + * 字典标签 + */ @JsonView(DictDataSimpleView.class) private String dictLabel; - /** 字典键值 */ - @Excel(name = "字典键值") + /** + * 字典键值 + */ @JsonView(DictDataSimpleView.class) private String dictValue; - /** 字典类型 */ - @Excel(name = "字典类型") + /** + * 字典类型 + */ @JsonView(DictDataSimpleView.class) private String dictType; - /** 样式属性(其他样式扩展) */ + /** + * 样式属性(其他样式扩展) + */ @JsonView(DictDataSimpleView.class) private String cssClass; - /** 表格字典样式 */ + /** + * 表格字典样式 + */ @JsonView(DictDataSimpleView.class) private String listClass; - /** 是否默认(Y是 N否) */ - @Excel(name = "是否默认", readConverterExp = "Y=是,N=否") + /** + * 是否默认(Y是 N否) + */ @JsonView(DictDataSimpleView.class) private String isDefault; - /** 状态(0正常 1停用) */ - @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + /** + * 状态(0正常 1停用) + */ private String status; @Override @@ -76,128 +86,112 @@ public class SysDictData extends BaseEntity public void setRemark(String remark) { this.remark = remark; } + @JsonView(DictDataSimpleView.class) private String remark; + @JsonSerialize(using = ToStringSerializer.class) - public Long getDictCode() - { + public Long getDictCode() { return dictCode; } - public void setDictCode(Long dictCode) - { + public void setDictCode(Long dictCode) { this.dictCode = dictCode; } + @JsonSerialize(using = ToStringSerializer.class) - public Long getDictSort() - { + public Long getDictSort() { return dictSort; } - public void setDictSort(Long dictSort) - { + public void setDictSort(Long dictSort) { this.dictSort = dictSort; } @NotBlank(message = "字典标签不能为空") @Size(min = 0, max = 200, message = "字典标签长度不能超过200个字符") - public String getDictLabel() - { + public String getDictLabel() { return dictLabel; } - public void setDictLabel(String dictLabel) - { + public void setDictLabel(String dictLabel) { this.dictLabel = dictLabel; } @NotBlank(message = "字典键值不能为空") @Size(min = 0, max = 200, message = "字典键值长度不能超过200个字符") - public String getDictValue() - { + public String getDictValue() { return dictValue; } - public void setDictValue(String dictValue) - { + public void setDictValue(String dictValue) { this.dictValue = dictValue; } @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") - public String getDictType() - { + public String getDictType() { return dictType; } - public void setDictType(String dictType) - { + public void setDictType(String dictType) { this.dictType = dictType; } @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") - public String getCssClass() - { + public String getCssClass() { return cssClass; } - public void setCssClass(String cssClass) - { + public void setCssClass(String cssClass) { this.cssClass = cssClass; } - public String getListClass() - { + public String getListClass() { return listClass; } - public void setListClass(String listClass) - { + public void setListClass(String listClass) { this.listClass = listClass; } - public boolean getDefault() - { - return UserConstants.YES.equals(this.isDefault); + public boolean getDefault() { + return "Y".equals(this.isDefault); } - public String getIsDefault() - { + public String getIsDefault() { return isDefault; } - public void setIsDefault(String isDefault) - { + public void setIsDefault(String isDefault) { this.isDefault = isDefault; } - public String getStatus() - { + public String getStatus() { return status; } - public void setStatus(String status) - { + public void setStatus(String status) { this.status = status; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("dictCode", getDictCode()) - .append("dictSort", getDictSort()) - .append("dictLabel", getDictLabel()) - .append("dictValue", getDictValue()) - .append("dictType", getDictType()) - .append("cssClass", getCssClass()) - .append("listClass", getListClass()) - .append("isDefault", getIsDefault()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("dictCode", getDictCode()) + .append("dictSort", getDictSort()) + .append("dictLabel", getDictLabel()) + .append("dictValue", getDictValue()) + .append("dictType", getDictType()) + .append("cssClass", getCssClass()) + .append("listClass", getListClass()) + .append("isDefault", getIsDefault()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); } } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDictType.java similarity index 54% rename from ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDictType.java index 1763a52..f5d4a04 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysDictType.java @@ -2,8 +2,6 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -17,84 +15,80 @@ import javax.validation.constraints.Size; * * @author ff */ -public class SysDictType extends BaseEntity -{ +public class SysDictType extends BaseEntity { private static final long serialVersionUID = 1L; - /** 字典主键 */ - @Excel(name = "字典主键", cellType = ColumnType.NUMERIC) + /** + * 字典主键 + */ @JsonSerialize(using = ToStringSerializer.class) private Long dictId; - /** 字典名称 */ - @Excel(name = "字典名称") + /** + * 字典名称 + */ private String dictName; - /** 字典类型 */ - @Excel(name = "字典类型") + /** + * 字典类型 + */ private String dictType; - /** 状态(0正常 1停用) */ - @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + /** + * 状态(0正常 1停用) + */ private String status; + @JsonSerialize(using = ToStringSerializer.class) - public Long getDictId() - { + public Long getDictId() { return dictId; } - public void setDictId(Long dictId) - { + public void setDictId(Long dictId) { this.dictId = dictId; } @NotBlank(message = "字典名称不能为空") @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") - public String getDictName() - { + public String getDictName() { return dictName; } - public void setDictName(String dictName) - { + public void setDictName(String dictName) { this.dictName = dictName; } @NotBlank(message = "字典类型不能为空") @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") - public String getDictType() - { + public String getDictType() { return dictType; } - public void setDictType(String dictType) - { + public void setDictType(String dictType) { this.dictType = dictType; } - public String getStatus() - { + public String getStatus() { return status; } - public void setStatus(String status) - { + public void setStatus(String status) { this.status = status; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("dictId", getDictId()) - .append("dictName", getDictName()) - .append("dictType", getDictType()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("dictId", getDictId()) + .append("dictName", getDictName()) + .append("dictType", getDictType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); } } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysLogininfor.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysLogininfor.java new file mode 100644 index 0000000..b145987 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysLogininfor.java @@ -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; + } +} diff --git a/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysMenu.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysMenu.java new file mode 100644 index 0000000..f09b645 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysMenu.java @@ -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; + + /** + * 路由名称,默认和路由地址相同的驼峰格式(注意:因为vue3版本的router会删除名称相同路由,为避免名字的冲突,特殊情况可以自定义) + */ + private String routeName; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); + + @JsonSerialize(using = ToStringSerializer.class) + public Long getMenuId() { + return menuId; + } + + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + @NotBlank(message = "菜单名称不能为空") + @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符") + public String getMenuName() { + return menuName; + } + + public void setMenuName(String menuName) { + this.menuName = menuName; + } + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + @NotNull(message = "显示顺序不能为空") + public Integer getOrderNum() { + return orderNum; + } + + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + + @Size(min = 0, max = 200, message = "路由地址不能超过200个字符") + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + @Size(min = 0, max = 200, message = "组件路径不能超过255个字符") + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getRouteName() { + return routeName; + } + + public void setRouteName(String routeName) { + this.routeName = routeName; + } + + public String getIsFrame() { + return isFrame; + } + + public void setIsFrame(String isFrame) { + this.isFrame = isFrame; + } + + public String getIsCache() { + return isCache; + } + + public void setIsCache(String isCache) { + this.isCache = isCache; + } + + @NotBlank(message = "菜单类型不能为空") + public String getMenuType() { + return menuType; + } + + public void setMenuType(String menuType) { + this.menuType = menuType; + } + + public String getVisible() { + return visible; + } + + public void setVisible(String visible) { + this.visible = visible; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符") + public String getPerms() { + return perms; + } + + public void setPerms(String perms) { + this.perms = perms; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("menuId", getMenuId()) + .append("menuName", getMenuName()) + .append("parentId", getParentId()) + .append("orderNum", getOrderNum()) + .append("path", getPath()) + .append("component", getComponent()) + .append("query", getQuery()) + .append("routeName", getRouteName()) + .append("isFrame", getIsFrame()) + .append("IsCache", getIsCache()) + .append("menuType", getMenuType()) + .append("visible", getVisible()) + .append("status ", getStatus()) + .append("perms", getPerms()) + .append("icon", getIcon()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysOperLog.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysOperLog.java new file mode 100644 index 0000000..25d3193 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysOperLog.java @@ -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; + + +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysPost.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysPost.java similarity index 50% rename from ff-base/src/main/java/com/ff/base/system/domain/SysPost.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysPost.java index ede0789..d19295b 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysPost.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysPost.java @@ -2,8 +2,6 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -17,112 +15,107 @@ import javax.validation.constraints.Size; * * @author ff */ -public class SysPost extends BaseEntity -{ +public class SysPost extends BaseEntity { private static final long serialVersionUID = 1L; - /** 岗位序号 */ - @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC) + /** + * 岗位序号 + */ @JsonSerialize(using = ToStringSerializer.class) private Long postId; - /** 岗位编码 */ - @Excel(name = "岗位编码") + /** + * 岗位编码 + */ private String postCode; - /** 岗位名称 */ - @Excel(name = "岗位名称") + /** + * 岗位名称 + */ private String postName; - /** 岗位排序 */ - @Excel(name = "岗位排序") + /** + * 岗位排序 + */ private Integer postSort; - /** 状态(0正常 1停用) */ - @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + /** + * 状态(0正常 1停用) + */ private String status; - /** 用户是否存在此岗位标识 默认不存在 */ + /** + * 用户是否存在此岗位标识 默认不存在 + */ private boolean flag = false; + @JsonSerialize(using = ToStringSerializer.class) - public Long getPostId() - { + public Long getPostId() { return postId; } - public void setPostId(Long postId) - { + public void setPostId(Long postId) { this.postId = postId; } @NotBlank(message = "岗位编码不能为空") @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符") - public String getPostCode() - { + public String getPostCode() { return postCode; } - public void setPostCode(String postCode) - { + public void setPostCode(String postCode) { this.postCode = postCode; } @NotBlank(message = "岗位名称不能为空") @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符") - public String getPostName() - { + public String getPostName() { return postName; } - public void setPostName(String postName) - { + public void setPostName(String postName) { this.postName = postName; } @NotNull(message = "显示顺序不能为空") - public Integer getPostSort() - { + public Integer getPostSort() { return postSort; } - public void setPostSort(Integer postSort) - { + public void setPostSort(Integer postSort) { this.postSort = postSort; } - public String getStatus() - { + public String getStatus() { return status; } - public void setStatus(String status) - { + public void setStatus(String status) { this.status = status; } - public boolean isFlag() - { + public boolean isFlag() { return flag; } - public void setFlag(boolean flag) - { + public void setFlag(boolean flag) { this.flag = flag; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("postId", getPostId()) - .append("postCode", getPostCode()) - .append("postName", getPostName()) - .append("postSort", getPostSort()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("postId", getPostId()) + .append("postCode", getPostCode()) + .append("postName", getPostName()) + .append("postSort", getPostSort()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); } } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRole.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRole.java new file mode 100644 index 0000000..faa01f8 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRole.java @@ -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; + + /** + * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) + */ + 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 permissions; + + public SysRole() { + + } + + public SysRole(Long roleId) { + this.roleId = roleId; + } + + @JsonSerialize(using = ToStringSerializer.class) + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public boolean isAdmin() { + return isAdmin(this.roleId); + } + + public static boolean isAdmin(Long roleId) { + return roleId != null && 1L == roleId; + } + + @NotBlank(message = "角色名称不能为空") + @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + @NotBlank(message = "权限字符不能为空") + @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") + public String getRoleKey() { + return roleKey; + } + + public void setRoleKey(String roleKey) { + this.roleKey = roleKey; + } + + @NotNull(message = "显示顺序不能为空") + public Integer getRoleSort() { + return roleSort; + } + + public void setRoleSort(Integer roleSort) { + this.roleSort = roleSort; + } + + public String getDataScope() { + return dataScope; + } + + public void setDataScope(String dataScope) { + this.dataScope = dataScope; + } + + public boolean isMenuCheckStrictly() { + return menuCheckStrictly; + } + + public void setMenuCheckStrictly(boolean menuCheckStrictly) { + this.menuCheckStrictly = menuCheckStrictly; + } + + public boolean isDeptCheckStrictly() { + return deptCheckStrictly; + } + + public void setDeptCheckStrictly(boolean deptCheckStrictly) { + this.deptCheckStrictly = deptCheckStrictly; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public boolean isFlag() { + return flag; + } + + public void setFlag(boolean flag) { + this.flag = flag; + } + + public Long[] getMenuIds() { + return menuIds; + } + + public void setMenuIds(Long[] menuIds) { + this.menuIds = menuIds; + } + + public Long[] getDeptIds() { + return deptIds; + } + + public void setDeptIds(Long[] deptIds) { + this.deptIds = deptIds; + } + + public Set getPermissions() { + return permissions; + } + + public void setPermissions(Set permissions) { + this.permissions = permissions; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("roleName", getRoleName()) + .append("roleKey", getRoleKey()) + .append("roleSort", getRoleSort()) + .append("dataScope", getDataScope()) + .append("menuCheckStrictly", isMenuCheckStrictly()) + .append("deptCheckStrictly", isDeptCheckStrictly()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRoleDept.java similarity index 64% rename from ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRoleDept.java index 3829123..e8025f5 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRoleDept.java @@ -10,41 +10,42 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ff */ -public class SysRoleDept -{ - /** 角色ID */ +public class SysRoleDept { + /** + * 角色ID + */ @JsonSerialize(using = ToStringSerializer.class) private Long roleId; - /** 部门ID */ + /** + * 部门ID + */ @JsonSerialize(using = ToStringSerializer.class) private Long deptId; + @JsonSerialize(using = ToStringSerializer.class) - public Long getRoleId() - { + public Long getRoleId() { return roleId; } - public void setRoleId(Long roleId) - { + public void setRoleId(Long roleId) { this.roleId = roleId; } + @JsonSerialize(using = ToStringSerializer.class) - public Long getDeptId() - { + public Long getDeptId() { return deptId; } - public void setDeptId(Long deptId) - { + public void setDeptId(Long deptId) { this.deptId = deptId; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("roleId", getRoleId()) - .append("deptId", getDeptId()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("deptId", getDeptId()) + .toString(); } } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRoleMenu.java similarity index 64% rename from ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRoleMenu.java index 701199d..8741de2 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysRoleMenu.java @@ -10,41 +10,42 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ff */ -public class SysRoleMenu -{ - /** 角色ID */ +public class SysRoleMenu { + /** + * 角色ID + */ @JsonSerialize(using = ToStringSerializer.class) private Long roleId; - /** 菜单ID */ + /** + * 菜单ID + */ @JsonSerialize(using = ToStringSerializer.class) private Long menuId; + @JsonSerialize(using = ToStringSerializer.class) - public Long getRoleId() - { + public Long getRoleId() { return roleId; } - public void setRoleId(Long roleId) - { + public void setRoleId(Long roleId) { this.roleId = roleId; } + @JsonSerialize(using = ToStringSerializer.class) - public Long getMenuId() - { + public Long getMenuId() { return menuId; } - public void setMenuId(Long menuId) - { + public void setMenuId(Long menuId) { this.menuId = menuId; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("roleId", getRoleId()) - .append("menuId", getMenuId()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("menuId", getMenuId()) + .toString(); } } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUser.java similarity index 68% rename from ff-base/src/main/java/com/ff/base/system/domain/SysUser.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUser.java index 2bde598..fdede26 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUser.java @@ -2,15 +2,8 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; -import com.ff.base.annotation.Excel.Type; -import com.ff.base.annotation.Excels; import com.ff.base.core.domain.BaseEntity; -import com.ff.base.xss.Xss; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; @@ -30,21 +23,17 @@ public class SysUser extends BaseEntity { * 用户ID */ @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") private Long userId; /** * 部门ID */ - @Excel(name = "部门编号", type = Type.IMPORT) @JsonSerialize(using = ToStringSerializer.class) private Long deptId; /** * 用户账号 */ - @Excel(name = "登录名称") - @Xss(message = "用户账号不能包含脚本字符") @NotBlank(message = "用户账号不能为空") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") private String userName; @@ -52,15 +41,12 @@ public class SysUser extends BaseEntity { /** * 用户昵称 */ - @Excel(name = "用户名称") - @Xss(message = "用户昵称不能包含脚本字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") private String nickName; /** * 用户邮箱 */ - @Excel(name = "用户邮箱") @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") private String email; @@ -68,14 +54,12 @@ public class SysUser extends BaseEntity { /** * 手机号码 */ - @Excel(name = "手机号码", cellType = ColumnType.TEXT) @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") private String phonenumber; /** * 用户性别 */ - @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") private String sex; /** @@ -91,7 +75,6 @@ public class SysUser extends BaseEntity { /** * 帐号状态(0正常 1停用) */ - @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") private String status; /** @@ -102,23 +85,17 @@ public class SysUser extends BaseEntity { /** * 最后登录IP */ - @Excel(name = "最后登录IP", type = Type.EXPORT) private String loginIp; /** * 最后登录时间 */ - @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) @JsonSerialize(using = ToStringSerializer.class) private Long loginDate; /** * 部门对象 */ - @Excels({ - @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), - @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) - }) private SysDept dept; /** @@ -148,18 +125,12 @@ public class SysUser extends BaseEntity { private Integer loginType; - - /** * 真实姓名 */ private String realName; - - - - public SysUser() { } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserOnline.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserOnline.java new file mode 100644 index 0000000..216f539 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserOnline.java @@ -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; + } +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUserPost.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserPost.java similarity index 51% rename from ff-base/src/main/java/com/ff/base/system/domain/SysUserPost.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserPost.java index 0cf5688..144c67d 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUserPost.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserPost.java @@ -8,39 +8,38 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ff */ -public class SysUserPost -{ - /** 用户ID */ +public class SysUserPost { + /** + * 用户ID + */ private Long userId; - /** 岗位ID */ + /** + * 岗位ID + */ private Long postId; - public Long getUserId() - { + public Long getUserId() { return userId; } - public void setUserId(Long userId) - { + public void setUserId(Long userId) { this.userId = userId; } - public Long getPostId() - { + public Long getPostId() { return postId; } - public void setPostId(Long postId) - { + public void setPostId(Long postId) { this.postId = postId; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("postId", getPostId()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("postId", getPostId()) + .toString(); } } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUserRole.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserRole.java similarity index 51% rename from ff-base/src/main/java/com/ff/base/system/domain/SysUserRole.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserRole.java index 5563642..114b29a 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUserRole.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/SysUserRole.java @@ -8,39 +8,38 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ff */ -public class SysUserRole -{ - /** 用户ID */ +public class SysUserRole { + /** + * 用户ID + */ private Long userId; - /** 角色ID */ + /** + * 角色ID + */ private Long roleId; - public Long getUserId() - { + public Long getUserId() { return userId; } - public void setUserId(Long userId) - { + public void setUserId(Long userId) { this.userId = userId; } - public Long getRoleId() - { + public Long getRoleId() { return roleId; } - public void setRoleId(Long roleId) - { + public void setRoleId(Long roleId) { this.roleId = roleId; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("roleId", getRoleId()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("roleId", getRoleId()) + .toString(); } } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantAgent.java similarity index 64% rename from ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantAgent.java index 84d42bb..1c62c3d 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantAgent.java @@ -2,10 +2,8 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -20,50 +18,58 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgent extends BaseEntity -{ +public class TenantAgent extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 账号 */ - @Excel(name = "账号") + /** + * 账号 + */ private String account; - /** 密码 */ - @Excel(name = "密码") + /** + * 密码 + */ private String password; - /** 注册时间 */ - @Excel(name = "注册时间") + /** + * 注册时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long registerTime; - /** 注册IP */ - @Excel(name = "注册IP") + /** + * 注册IP + */ private String registerIp; - /** 注册ip的城市 */ - @Excel(name = "注册ip的城市") + /** + * 注册ip的城市 + */ private String registerIpCity; - /** 最后登录ip */ - @Excel(name = "最后登录ip") + /** + * 最后登录ip + */ private String loginIp; - /** 最后登录时间 */ - @Excel(name = "最后登录时间") + /** + * 最后登录时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long loginData; - /** 租户状态 1正常 0停用 */ - @Excel(name = "租户状态 1正常 0停用") + /** + * 租户状态 1正常 0停用 + */ private Boolean tenantStatus; - /** * 货币协议 */ diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantPlatform.java similarity index 60% rename from ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantPlatform.java index fa77865..5ecedeb 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantPlatform.java @@ -1,17 +1,15 @@ package com.ff.base.system.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 租户成本管理对象 ff_tenant_platform * @@ -22,32 +20,38 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantPlatform extends BaseEntity -{ +public class TenantPlatform extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ private Long id; - /** 租户id */ - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd") + /** + * 租户id + */ + @JsonSerialize(using = ToStringSerializer.class) private Long tenantId; - /** 平台编码 */ - @Excel(name = "平台编码") + /** + * 平台编码 + */ private String platformCode; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 成本 */ - @Excel(name = "成本") + /** + * 成本 + */ private BigDecimal cost; - /** 使用成本 */ - @Excel(name = "使用成本") + /** + * 使用成本 + */ private BigDecimal useCost; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantSecretKey.java similarity index 54% rename from ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantSecretKey.java index 5b6dca2..5cedab9 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantSecretKey.java @@ -1,18 +1,16 @@ package com.ff.base.system.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 用户租户密钥对象 ff_tenant_secret_key * @@ -23,76 +21,92 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantSecretKey extends BaseEntity -{ +public class TenantSecretKey extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 租户key */ - @Excel(name = "租户key") + /** + * 租户key + */ private String tenantKey; - /** 密码 */ - @Excel(name = "密码") + /** + * 密码 + */ @JsonIgnore private String password; - /** 注册时间 */ + /** + * 注册时间 + */ @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "注册时间") private Long registerTime; - /** 注册ip */ - @Excel(name = "注册ip") + /** + * 注册ip + */ private String registerIp; - /** 注册ip的城市 */ - @Excel(name = "注册ip的城市") + /** + * 注册ip的城市 + */ private String registerIpCity; - /** 最后登录ip */ - @Excel(name = "最后登录ip") + /** + * 最后登录ip + */ private String loginIp; - /** 最后登录时间 */ + /** + * 最后登录时间 + */ @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "最后登录时间") private Long loginData; - /** 上级代理id */ + /** + * 上级代理id + */ @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "上级代理id") private Long agentId; - /** 商户后缀 */ - @Excel(name = "商户后缀") + /** + * 商户后缀 + */ private String tenantSn; - /** 租户密钥 */ - @Excel(name = "租户密钥") + /** + * 租户密钥 + */ private String tenantSecret; - /** 租户状态 1正常 0停用 */ - @Excel(name = "租户状态 1正常 0停用") + /** + * 租户状态 1正常 0停用 + */ private Boolean tenantStatus; - /** 额度类型 TenantQuotaType 枚举 */ - @Excel(name = "额度类型 TenantQuotaType 枚举") + /** + * 额度类型 TenantQuotaType 枚举 + */ private Integer quotaType; - /** 买分比例 */ - @Excel(name = "买分比例") + /** + * 买分比例 + */ private BigDecimal scoreRatio; - /** 租户类型 TenantType 枚举 */ - @Excel(name = "租户类型 TenantType 枚举") + /** + * 租户类型 TenantType 枚举 + */ private Integer tenantType; - /** 透支比例 */ - @Excel(name = "透支比例") + /** + * 透支比例 + */ private BigDecimal depositRatio; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantWhite.java similarity index 64% rename from ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java rename to ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantWhite.java index ba394ef..24caffb 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/base/system/domain/TenantWhite.java @@ -2,10 +2,8 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -20,20 +18,23 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantWhite extends BaseEntity -{ +public class TenantWhite extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ private Long id; - /** 租户id */ - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd") + /** + * 租户id + */ + @JsonSerialize(using = ToStringSerializer.class) private Long tenantId; - /** 白名单ip地址 */ - @Excel(name = "白名单ip地址") + /** + * 白名单ip地址 + */ private String whiteIp; diff --git a/ff-game/src/main/java/com/ff/common/domain/Currency.java b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/Currency.java similarity index 53% rename from ff-game/src/main/java/com/ff/common/domain/Currency.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/domain/Currency.java index a763b79..dad7638 100644 --- a/ff-game/src/main/java/com/ff/common/domain/Currency.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/Currency.java @@ -1,12 +1,12 @@ package com.ff.common.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; + +import java.math.BigDecimal; + /** * 币种对象 ff_currency * @@ -14,44 +14,53 @@ import lombok.Data; * @date 2025-02-10 */ @Data -public class Currency extends BaseEntity -{ +public class Currency extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 币种状态(0正常 1停用) */ - @Excel(name = "币种状态", readConverterExp = "0=正常,1=停用") + /** + * 币种状态(0正常 1停用) + */ private String status; - /** 币种国家 */ - @Excel(name = "币种国家") + /** + * 币种国家 + */ private String country; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 币种符号 */ - @Excel(name = "币种符号") + /** + * 币种符号 + */ private String currencySign; - /** 汇率 */ - @Excel(name = "汇率") + /** + * 汇率 + */ private BigDecimal gameRate; - /** 币种展示内容 */ - @Excel(name = "币种展示内容") + /** + * 币种展示内容 + */ private String currencyDisplay; - /** 币种名称 */ - @Excel(name = "币种名称") + /** + * 币种名称 + */ private String currencyName; - /** 币种全称 */ - @Excel(name = "币种全称") + /** + * 币种全称 + */ private String fullName; diff --git a/ff-game/src/main/java/com/ff/common/domain/Lang.java b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/Lang.java similarity index 61% rename from ff-game/src/main/java/com/ff/common/domain/Lang.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/domain/Lang.java index ca5fa39..4cd99b6 100644 --- a/ff-game/src/main/java/com/ff/common/domain/Lang.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/Lang.java @@ -2,9 +2,9 @@ package com.ff.common.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; + /** * 系统语种管理 对象 ff_lang * @@ -12,28 +12,33 @@ import lombok.Data; * @date 2025-02-10 */ @Data -public class Lang extends BaseEntity -{ +public class Lang extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 语言名称 */ - @Excel(name = "语言名称") + /** + * 语言名称 + */ private String name; - /** 国家代码 */ - @Excel(name = "国家代码") + /** + * 国家代码 + */ private String country; - /** 语种 */ - @Excel(name = "语种") + /** + * 语种 + */ private String langCode; - /** 语种开关 0 关闭 1 开启 */ - @Excel(name = "语种开关 0 关闭 1 开启") + /** + * 语种开关 0 关闭 1 开启 + */ private Boolean langStatus; diff --git a/ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantAgentPlatform.java similarity index 63% rename from ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantAgentPlatform.java index 29b7757..56a71bd 100644 --- a/ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantAgentPlatform.java @@ -1,14 +1,13 @@ package com.ff.common.domain; -import java.math.BigDecimal; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 平台利润成本管理对象 ff_tenant_agent_platform * @@ -19,27 +18,32 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantAgentPlatform extends BaseEntity -{ +public class TenantAgentPlatform extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ private Long id; - /** 平台编码 */ - @Excel(name = "平台编码") + /** + * 平台编码 + */ private String platformCode; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 成本 */ - @Excel(name = "成本") + /** + * 成本 + */ private BigDecimal cost; - /** 使用成本 */ - @Excel(name = "使用成本") + /** + * 使用成本 + */ private BigDecimal useCost; diff --git a/ff-game/src/main/java/com/ff/common/domain/TenantGameQuota.java b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantGameQuota.java similarity index 60% rename from ff-game/src/main/java/com/ff/common/domain/TenantGameQuota.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantGameQuota.java index 83033f4..2e99fc0 100644 --- a/ff-game/src/main/java/com/ff/common/domain/TenantGameQuota.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantGameQuota.java @@ -1,18 +1,15 @@ package com.ff.common.domain; -import java.math.BigDecimal; - - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 租户游戏配额对象 ff_tenant_game_quota * @@ -23,28 +20,33 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantGameQuota extends BaseEntity -{ +public class TenantGameQuota extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 租户key */ - @Excel(name = "租户key") + /** + * 租户key + */ private String tenantKey; - /** 游戏额度 */ - @Excel(name = "游戏额度") + /** + * 游戏额度 + */ private BigDecimal balance; - /** 额度类型 TenantQuotaType 枚举或者平台_币种或者平台_币种_FALSE 假额度 */ - @Excel(name = "额度类型 TenantQuotaType 枚举或者平台_币种或者平台_币种_FALSE 假额度") + /** + * 额度类型 TenantQuotaType 枚举或者平台_币种或者平台_币种_FALSE 假额度 + */ private String quotaType; - /** 版本号 */ - @Excel(name = "版本号") + /** + * 版本号 + */ private Integer version; diff --git a/ff-game/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java similarity index 55% rename from ff-game/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java index 899fa2a..5eadf7c 100644 --- a/ff-game/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java @@ -1,17 +1,15 @@ package com.ff.common.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 租户游戏额度流水对象 ff_tenant_game_quota_flow * @@ -22,65 +20,77 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantGameQuotaFlow extends BaseEntity -{ +public class TenantGameQuotaFlow extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 租户key */ - @Excel(name = "租户key") + /** + * 租户key + */ private String tenantKey; - /** 额度类型 */ - @Excel(name = "额度类型") + /** + * 额度类型 + */ private String quotaType; - /** 用户账号id */ - @Excel(name = "用户账号id") + /** + * 用户账号id + */ @JsonSerialize(using = ToStringSerializer.class) private Long memberId; - /** 平台 */ - @Excel(name = "平台") + /** + * 平台 + */ private String platformCode; - /** 币种代码 */ - @Excel(name = "币种代码") + /** + * 币种代码 + */ private String currencyCode; - - /** 充值类型 false 扣除 true 充值 */ - @Excel(name = "充值类型 false 扣除 true 充值") + /** + * 充值类型 false 扣除 true 充值 + */ private Boolean isOut; - /** 操作类型 operationType枚举 */ - @Excel(name = "操作类型 operationType枚举") + /** + * 操作类型 operationType枚举 + */ private Integer operationType; - /** 游戏额度之前 */ - @Excel(name = "游戏额度之前") + /** + * 游戏额度之前 + */ private BigDecimal balanceBefore; - /** 游戏额度 */ - @Excel(name = "游戏额度") + /** + * 游戏额度 + */ private BigDecimal balance; - /** 兑换比例 */ - @Excel(name = "兑换比例") + /** + * 兑换比例 + */ private BigDecimal exchangeRatio; - /** 兑换金额 */ - @Excel(name = "兑换金额") + /** + * 兑换金额 + */ private BigDecimal exchangeMoney; - /** 游戏额度之后 */ - @Excel(name = "游戏额度之后") + /** + * 游戏额度之后 + */ private BigDecimal balanceAfter; /** diff --git a/ff-game/src/main/java/com/ff/common/domain/TenantQuotaExchange.java b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantQuotaExchange.java similarity index 61% rename from ff-game/src/main/java/com/ff/common/domain/TenantQuotaExchange.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantQuotaExchange.java index 55347a1..28efd1f 100644 --- a/ff-game/src/main/java/com/ff/common/domain/TenantQuotaExchange.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/domain/TenantQuotaExchange.java @@ -1,17 +1,15 @@ package com.ff.common.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 币种汇率对象 ff_tenant_quota_exchange * @@ -22,36 +20,43 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class TenantQuotaExchange extends BaseEntity -{ +public class TenantQuotaExchange extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 兑换币种编码 */ - @Excel(name = "兑换币种编码") + /** + * 兑换币种编码 + */ private String exchangeCurrencyCode; - /** 市场兑换金额 */ - @Excel(name = "市场兑换金额") + /** + * 市场兑换金额 + */ private BigDecimal exchangeRate; - /** 汇率差 1百分比 2 固定值 */ - @Excel(name = "汇率差 1百分比 2 固定值") + /** + * 汇率差 1百分比 2 固定值 + */ private Integer differenceType; - /** 汇率差值 */ - @Excel(name = "汇率差值") + /** + * 汇率差值 + */ private BigDecimal differenceValue; - /** 实际兑换金额 */ - @Excel(name = "实际兑换金额") + /** + * 实际兑换金额 + */ private BigDecimal actualBalance; diff --git a/ff-game/src/main/java/com/ff/common/mapper/CurrencyMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/common/mapper/CurrencyMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/common/mapper/CurrencyMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/mapper/CurrencyMapper.java index 5aaf2f4..81b8f49 100644 --- a/ff-game/src/main/java/com/ff/common/mapper/CurrencyMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/mapper/CurrencyMapper.java @@ -1,8 +1,9 @@ package com.ff.common.mapper; -import java.util.List; import com.ff.common.domain.Currency; +import java.util.List; + /** * 币种Mapper接口 * diff --git a/ff-game/src/main/java/com/ff/common/mapper/LangMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/common/mapper/LangMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/common/mapper/LangMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/common/mapper/LangMapper.java index 0e7eb31..678542e 100644 --- a/ff-game/src/main/java/com/ff/common/mapper/LangMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/mapper/LangMapper.java @@ -1,8 +1,9 @@ package com.ff.common.mapper; -import java.util.List; import com.ff.common.domain.Lang; +import java.util.List; + /** * 系统语种管理 Mapper接口 * diff --git a/ff-bean/ff-domain/src/main/java/com/ff/common/service/ICurrencyService.java b/ff-bean/ff-domain/src/main/java/com/ff/common/service/ICurrencyService.java new file mode 100644 index 0000000..dc738e1 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/service/ICurrencyService.java @@ -0,0 +1,62 @@ +package com.ff.common.service; + +import com.ff.common.domain.Currency; + +import java.util.List; + +/** + * 币种Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface ICurrencyService +{ + /** + * 查询币种 + * + * @param id 币种主键 + * @return 币种 + */ + Currency selectCurrencyById(Long id); + + /** + * 查询币种列表 + * + * @param currency 币种 + * @return 币种集合 + */ + List selectCurrencyList(Currency currency); + + /** + * 新增币种 + * + * @param currency 币种 + * @return 结果 + */ + int insertCurrency(Currency currency); + + /** + * 修改币种 + * + * @param currency 币种 + * @return 结果 + */ + int updateCurrency(Currency currency); + + /** + * 批量删除币种 + * + * @param ids 需要删除的币种主键集合 + * @return 结果 + */ + int deleteCurrencyByIds(Long[] ids); + + /** + * 删除币种信息 + * + * @param id 币种主键 + * @return 结果 + */ + int deleteCurrencyById(Long id); +} diff --git a/ff-bean/ff-domain/src/main/java/com/ff/common/service/ILangService.java b/ff-bean/ff-domain/src/main/java/com/ff/common/service/ILangService.java new file mode 100644 index 0000000..9c9e2b6 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/service/ILangService.java @@ -0,0 +1,62 @@ +package com.ff.common.service; + +import com.ff.common.domain.Lang; + +import java.util.List; + +/** + * 系统语种管理 Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface ILangService +{ + /** + * 查询系统语种管理 + * + * @param id 系统语种管理 主键 + * @return 系统语种管理 + */ + Lang selectLangById(Long id); + + /** + * 查询系统语种管理 列表 + * + * @param lang 系统语种管理 + * @return 系统语种管理 集合 + */ + List selectLangList(Lang lang); + + /** + * 新增系统语种管理 + * + * @param lang 系统语种管理 + * @return 结果 + */ + int insertLang(Lang lang); + + /** + * 修改系统语种管理 + * + * @param lang 系统语种管理 + * @return 结果 + */ + int updateLang(Lang lang); + + /** + * 批量删除系统语种管理 + * + * @param ids 需要删除的系统语种管理 主键集合 + * @return 结果 + */ + int deleteLangByIds(Long[] ids); + + /** + * 删除系统语种管理 信息 + * + * @param id 系统语种管理 主键 + * @return 结果 + */ + int deleteLangById(Long id); +} diff --git a/ff-bean/ff-domain/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java new file mode 100644 index 0000000..7982b21 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.common.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.ff.common.domain.Currency; +import com.ff.common.mapper.CurrencyMapper; +import com.ff.common.service.ICurrencyService; +import com.ff.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 币种Service业务层处理 + * + * @author shi + * @date 2025-02-10 + */ +@Service +public class CurrencyServiceImpl implements ICurrencyService +{ + @Autowired + private CurrencyMapper currencyMapper; + + /** + * 查询币种 + * + * @param id 币种主键 + * @return 币种 + */ + @Override + public Currency selectCurrencyById(Long id) + { + return currencyMapper.selectCurrencyById(id); + } + + /** + * 查询币种列表 + * + * @param currency 币种 + * @return 币种 + */ + @Override + public List selectCurrencyList(Currency currency) + { + return currencyMapper.selectCurrencyList(currency); + } + + /** + * 新增币种 + * + * @param currency 币种 + * @return 结果 + */ + @Override + public int insertCurrency(Currency currency) + { + currency.setId(IdUtil.getSnowflakeNextId()); + currency.setCreateTime(DateUtils.getNowDate()); + return currencyMapper.insertCurrency(currency); + } + + /** + * 修改币种 + * + * @param currency 币种 + * @return 结果 + */ + @Override + public int updateCurrency(Currency currency) + { + currency.setUpdateTime(DateUtils.getNowDate()); + return currencyMapper.updateCurrency(currency); + } + + /** + * 批量删除币种 + * + * @param ids 需要删除的币种主键 + * @return 结果 + */ + @Override + public int deleteCurrencyByIds(Long[] ids) + { + return currencyMapper.deleteCurrencyByIds(ids); + } + + /** + * 删除币种信息 + * + * @param id 币种主键 + * @return 结果 + */ + @Override + public int deleteCurrencyById(Long id) + { + return currencyMapper.deleteCurrencyById(id); + } +} diff --git a/ff-bean/ff-domain/src/main/java/com/ff/common/service/impl/LangServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/common/service/impl/LangServiceImpl.java new file mode 100644 index 0000000..143d098 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/common/service/impl/LangServiceImpl.java @@ -0,0 +1,92 @@ +package com.ff.common.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.ff.common.domain.Lang; +import com.ff.common.mapper.LangMapper; +import com.ff.common.service.ILangService; +import com.ff.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 系统语种管理 Service业务层处理 + * + * @author shi + * @date 2025-02-10 + */ +@Service +public class LangServiceImpl implements ILangService { + @Autowired + private LangMapper langMapper; + + /** + * 查询系统语种管理 + * + * @param id 系统语种管理 主键 + * @return 系统语种管理 + */ + @Override + public Lang selectLangById(Long id) { + return langMapper.selectLangById(id); + } + + /** + * 查询系统语种管理 列表 + * + * @param lang 系统语种管理 + * @return 系统语种管理 + */ + @Override + public List selectLangList(Lang lang) { + return langMapper.selectLangList(lang); + } + + /** + * 新增系统语种管理 + * + * @param lang 系统语种管理 + * @return 结果 + */ + @Override + public int insertLang(Lang lang) { + lang.setId(IdUtil.getSnowflakeNextId()); + lang.setCreateTime(DateUtils.getNowDate()); + return langMapper.insertLang(lang); + } + + /** + * 修改系统语种管理 + * + * @param lang 系统语种管理 + * @return 结果 + */ + @Override + public int updateLang(Lang lang) { + lang.setUpdateTime(DateUtils.getNowDate()); + return langMapper.updateLang(lang); + } + + /** + * 批量删除系统语种管理 + * + * @param ids 需要删除的系统语种管理 主键 + * @return 结果 + */ + @Override + public int deleteLangByIds(Long[] ids) { + return langMapper.deleteLangByIds(ids); + } + + /** + * 删除系统语种管理 信息 + * + * @param id 系统语种管理 主键 + * @return 结果 + */ + @Override + public int deleteLangById(Long id) { + return langMapper.deleteLangById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/game/domain/CurrencyInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/CurrencyInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/CurrencyInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/CurrencyInfo.java diff --git a/ff-game/src/main/java/com/ff/game/domain/ExtInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/ExtInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/ExtInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/ExtInfo.java diff --git a/ff-game/src/main/java/com/ff/game/domain/Game.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/Game.java similarity index 81% rename from ff-game/src/main/java/com/ff/game/domain/Game.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/Game.java index 5b65e5b..bad00da 100644 --- a/ff-game/src/main/java/com/ff/game/domain/Game.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/Game.java @@ -2,7 +2,6 @@ package com.ff.game.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,20 +32,17 @@ public class Game extends BaseEntity { /** * 排序 */ - @Excel(name = "排序") private Integer sortNo; /** * 游戏平台id */ - @Excel(name = "游戏平台id") @JsonSerialize(using = ToStringSerializer.class) private Long platformId; /** * 游戏第三方id */ - @Excel(name = "游戏第三方id") private String gameCode; /** @@ -57,31 +53,26 @@ public class Game extends BaseEntity { /** * 第三方来源分类 */ - @Excel(name = "第三方来源分类") private String gameSourceType; /** * 游戏名称 */ - @Excel(name = "游戏名称") private String gameName; /** * 是否支持免费游戏 1 支持 0 不支持 */ - @Excel(name = "是否支持免费游戏 1 支持 0 不支持") private Boolean freespin; /** * 是否支持试玩 0关闭 1开启 */ - @Excel(name = "是否支持试玩 0关闭 1开启") private Boolean demoStatus; /** * 维护开关 维护状态 */ - @Excel(name = "维护开关 ") private Boolean stopStatus; /** @@ -102,5 +93,5 @@ public class Game extends BaseEntity { /** * 游戏id */ - private String gameId; + private String gameId; } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameBettingDetails.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameBettingDetails.java new file mode 100644 index 0000000..4453290 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameBettingDetails.java @@ -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; + + +} diff --git a/ff-game/src/main/java/com/ff/game/domain/GameExchangeMoney.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameExchangeMoney.java similarity index 52% rename from ff-game/src/main/java/com/ff/game/domain/GameExchangeMoney.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameExchangeMoney.java index 336dd12..62a074c 100644 --- a/ff-game/src/main/java/com/ff/game/domain/GameExchangeMoney.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameExchangeMoney.java @@ -1,17 +1,15 @@ package com.ff.game.domain; -import java.math.BigDecimal; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + /** * 会员金额转移记录对象 ff_game_exchange_money * @@ -22,24 +20,28 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class GameExchangeMoney extends BaseEntity -{ +public class GameExchangeMoney extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 租户key */ - @Excel(name = "租户key") + /** + * 租户key + */ private String tenantKey; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 第三方交易id */ - @Excel(name = "第三方交易id") + /** + * 第三方交易id + */ private String transactionId; /** @@ -47,47 +49,56 @@ public class GameExchangeMoney extends BaseEntity */ private String orderId; - /** 会员id */ - @Excel(name = "会员id") + /** + * 会员id + */ @JsonSerialize(using = ToStringSerializer.class) private Long memberId; - /** 游戏平台 */ - @Excel(name = "游戏平台 ") + /** + * 游戏平台 + */ private String platformCode; - /** 操作金额 */ - @Excel(name = "操作金额") + /** + * 操作金额 + */ private BigDecimal balance; - /** 租户操作额度 */ - @Excel(name = "租户操作额度") + /** + * 租户操作额度 + */ private BigDecimal quota; - /** 转账前金额(游戏币) */ - @Excel(name = " 转账前金额(游戏币)") + /** + * 转账前金额(游戏币) + */ private BigDecimal coinBefore; - /** 转账后金额(游戏币) */ - @Excel(name = "转账后金额(游戏币)") + /** + * 转账后金额(游戏币) + */ private BigDecimal coinAfter; - /** 转账前金额(指定货币) */ - @Excel(name = "转账前金额(指定货币)") + /** + * 转账前金额(指定货币) + */ private BigDecimal currencyBefore; - /** 转账后金额(指定货币) */ - @Excel(name = "转账后金额(指定货币)") + /** + * 转账后金额(指定货币) + */ private BigDecimal currencyAfter; - - /** 转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商 */ - @Excel(name = "转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商") + /** + * 转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商 + */ private Integer exchangeType; - /** 状态,0:进行中、1:成功、2:失败 */ - @Excel(name = "状态 1 成功 2失败") + /** + * 状态,0:进行中、1:成功、2:失败 + */ private Integer status; /** diff --git a/ff-game/src/main/java/com/ff/game/domain/GameFreeRecord.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameFreeRecord.java similarity index 50% rename from ff-game/src/main/java/com/ff/game/domain/GameFreeRecord.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameFreeRecord.java index b749f64..5a5ee78 100644 --- a/ff-game/src/main/java/com/ff/game/domain/GameFreeRecord.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/GameFreeRecord.java @@ -2,10 +2,8 @@ package com.ff.game.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -20,73 +18,88 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @SuperBuilder @NoArgsConstructor -public class GameFreeRecord extends BaseEntity -{ +public class GameFreeRecord extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; - /** 平台代码 */ - @Excel(name = "平台代码") + /** + * 平台代码 + */ private String platformCode; - /** 免费局数序号(唯一标识符) */ - @Excel(name = "免费局数序号", readConverterExp = "唯=一标识符") + /** + * 免费局数序号(唯一标识符) + */ private String referenceId; - /** 会员id */ - @Excel(name = "会员id") + /** + * 会员id + */ @JsonSerialize(using = ToStringSerializer.class) private Long memberId; - /** 用户账号 */ - @Excel(name = "用户账号") + /** + * 用户账号 + */ private String memberAccount; - /** 游戏id */ - @Excel(name = "游戏id ") + /** + * 游戏id + */ @JsonSerialize(using = ToStringSerializer.class) private Long gameId; - /** 免费游戏局数可使用的开始时间 */ - @Excel(name = "免费游戏局数可使用的开始时间") + /** + * 免费游戏局数可使用的开始时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long sendTime; - /** 免费局数过期时间 */ - @Excel(name = "免费局数过期时间") + /** + * 免费局数过期时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long expiredTime; - /** 免费局数记录更新时间 */ - @Excel(name = "免费局数记录更新时间") + /** + * 免费局数记录更新时间 + */ @JsonSerialize(using = ToStringSerializer.class) private Long freeUpdateTime; - /** 免费局数赠送的游戏名称 */ - @Excel(name = "免费局数赠送的游戏名称") + /** + * 免费局数赠送的游戏名称 + */ private String sendGame; - /** 免费局数赠送的数量 */ - @Excel(name = "免费局数赠送的数量") + /** + * 免费局数赠送的数量 + */ private Integer sendAmount; - /** 已使用的免费局数数量 */ - @Excel(name = "已使用的免费局数数量") + /** + * 已使用的免费局数数量 + */ private Integer usedAmount; - /** 未使用的免费局数数量 */ - @Excel(name = "未使用的免费局数数量") + /** + * 未使用的免费局数数量 + */ private Integer unusedAmount; - /** 免费状态 1正常 0 取消 */ - @Excel(name = "免费状态 1正常 0 取消 ") + /** + * 免费状态 1正常 0 取消 + */ private Integer freeStatus; diff --git a/ff-game/src/main/java/com/ff/game/domain/KeyInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/KeyInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/KeyInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/KeyInfo.java diff --git a/ff-game/src/main/java/com/ff/game/domain/LangInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/LangInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/LangInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/LangInfo.java diff --git a/ff-game/src/main/java/com/ff/game/domain/NameInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/NameInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/NameInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/NameInfo.java diff --git a/ff-game/src/main/java/com/ff/game/domain/Platform.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/Platform.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/Platform.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/Platform.java diff --git a/ff-game/src/main/java/com/ff/game/domain/PlatformInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/PlatformInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/PlatformInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/PlatformInfo.java diff --git a/ff-game/src/main/java/com/ff/game/domain/UrlInfo.java b/ff-bean/ff-domain/src/main/java/com/ff/game/domain/UrlInfo.java similarity index 100% rename from ff-game/src/main/java/com/ff/game/domain/UrlInfo.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/domain/UrlInfo.java diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java similarity index 63% rename from ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java index d4b5da3..e2cc603 100644 --- a/ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java @@ -1,26 +1,24 @@ package com.ff.game.mapper; -import java.util.List; import com.ff.game.domain.GameBettingDetails; -import com.ff.game.dto.GameBettingDetailsDTO; import org.apache.ibatis.annotations.Param; -import org.springframework.security.core.parameters.P; + +import java.util.List; /** * 会员投注细目Mapper接口 - * + * * @author shi * @date 2025-02-10 */ -public interface GameBettingDetailsMapper -{ +public interface GameBettingDetailsMapper { /** * 查询会员投注细目 - * + * * @param id 会员投注细目主键 * @return 会员投注细目 */ - GameBettingDetails selectGameBettingDetailsById(Long id); + GameBettingDetails selectGameBettingDetailsById(Long id); /** @@ -30,48 +28,40 @@ public interface GameBettingDetailsMapper * @param platformCode 平台代码 * @return {@link List }<{@link Long }> */ - List selectGameBettingDetailsByWagersId(@Param("wagersIds") List wagersIds, @Param("platformCode") String platformCode); + List selectGameBettingDetailsByWagersId(@Param("wagersIds") List wagersIds, @Param("platformCode") String platformCode); - /** - * 查询会员投注细目列表 - * - * @param gameBettingDetailsDTO 会员投注细目 - * @return 会员投注细目集合 - */ - List selectGameBettingDetailsList(GameBettingDetailsDTO gameBettingDetailsDTO); - /** * 新增会员投注细目 - * + * * @param gameBettingDetails 会员投注细目 * @return 结果 */ - int insertGameBettingDetails(GameBettingDetails gameBettingDetails); + int insertGameBettingDetails(GameBettingDetails gameBettingDetails); /** * 修改会员投注细目 - * + * * @param gameBettingDetails 会员投注细目 * @return 结果 */ - int updateGameBettingDetails(GameBettingDetails gameBettingDetails); + int updateGameBettingDetails(GameBettingDetails gameBettingDetails); /** * 删除会员投注细目 - * + * * @param id 会员投注细目主键 * @return 结果 */ - int deleteGameBettingDetailsById(Long id); + int deleteGameBettingDetailsById(Long id); /** * 批量删除会员投注细目 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteGameBettingDetailsByIds(Long[] ids); + int deleteGameBettingDetailsByIds(Long[] ids); /** * 批量插入 diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java similarity index 55% rename from ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java index 0d0a9ac..277de87 100644 --- a/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java @@ -1,70 +1,62 @@ package com.ff.game.mapper; -import java.util.List; import com.ff.game.domain.GameExchangeMoney; -import com.ff.game.dto.GameExchangeMoneyDTO; + +import java.util.List; /** * 会员金额转移记录Mapper接口 - * + * * @author shi * @date 2025-02-10 */ -public interface GameExchangeMoneyMapper -{ +public interface GameExchangeMoneyMapper { /** * 查询会员金额转移记录 - * + * * @param id 会员金额转移记录主键 * @return 会员金额转移记录 */ - GameExchangeMoney selectGameExchangeMoneyById(Long id); + GameExchangeMoney selectGameExchangeMoneyById(Long id); /** * 查询会员金额转移记录列表 - * + * * @param gameExchangeMoney 会员金额转移记录 * @return 会员金额转移记录集合 */ - List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney); + List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney); - /** - * 选择游戏兑换货币列表 - * - * @param gameExchangeMoneyDTO 游戏兑换货币dto - * @return {@link List }<{@link GameExchangeMoneyDTO }> - */ - List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO); /** * 新增会员金额转移记录 - * + * * @param gameExchangeMoney 会员金额转移记录 * @return 结果 */ - int insertGameExchangeMoney(GameExchangeMoney gameExchangeMoney); + int insertGameExchangeMoney(GameExchangeMoney gameExchangeMoney); /** * 修改会员金额转移记录 - * + * * @param gameExchangeMoney 会员金额转移记录 * @return 结果 */ - int updateGameExchangeMoney(GameExchangeMoney gameExchangeMoney); + int updateGameExchangeMoney(GameExchangeMoney gameExchangeMoney); /** * 删除会员金额转移记录 - * + * * @param id 会员金额转移记录主键 * @return 结果 */ - int deleteGameExchangeMoneyById(Long id); + int deleteGameExchangeMoneyById(Long id); /** * 批量删除会员金额转移记录 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteGameExchangeMoneyByIds(Long[] ids); + int deleteGameExchangeMoneyByIds(Long[] ids); } diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java index 63a5d78..dae2213 100644 --- a/ff-game/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java @@ -1,8 +1,9 @@ package com.ff.game.mapper; -import java.util.List; import com.ff.game.domain.GameFreeRecord; +import java.util.List; + /** * 免费赠送游戏记录Mapper接口 * diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameMapper.java similarity index 71% rename from ff-game/src/main/java/com/ff/game/mapper/GameMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameMapper.java index 09ed960..da0fea1 100644 --- a/ff-game/src/main/java/com/ff/game/mapper/GameMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/GameMapper.java @@ -1,9 +1,6 @@ package com.ff.game.mapper; -import com.ff.api.response.GameResponse; -import com.ff.game.api.request.GameUniqueDTO; import com.ff.game.domain.Game; -import com.ff.game.dto.GameDTO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -82,28 +79,5 @@ public interface GameMapper { */ Integer selectMaxSortNoBy(@Param("platformType") Integer platformType, @Param("platformCode") String platformCode); - /** - * 选择游戏唯一列表 - * - * @param gameUniqueDTO 游戏独有dto - * @return {@link List }<{@link Game }> - */ - List selectGameUniqueList(GameUniqueDTO gameUniqueDTO); - - /** - * 选择游戏响应列表 - * - * @return {@link List }<{@link GameResponse }> - */ - List selectGameResponseList(); - - - /** - * 选择游戏数据列表 - * - * @param gameDTO 游戏dto - * @return {@link List }<{@link Game }> - */ - List selectGameDTOList(GameDTO gameDTO); } diff --git a/ff-game/src/main/java/com/ff/game/mapper/PlatformMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/PlatformMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/game/mapper/PlatformMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/mapper/PlatformMapper.java index c6664b1..ee1d9ab 100644 --- a/ff-game/src/main/java/com/ff/game/mapper/PlatformMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/mapper/PlatformMapper.java @@ -9,7 +9,6 @@ import java.util.List; */ public interface PlatformMapper { - List selectList(Platform platform); Platform selectByPlatformCode(String platformCode); diff --git a/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameBettingDetailsService.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameBettingDetailsService.java new file mode 100644 index 0000000..32e9b10 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameBettingDetailsService.java @@ -0,0 +1,79 @@ +package com.ff.game.service; + +import com.ff.game.domain.GameBettingDetails; + +import java.util.List; + +/** + * 会员投注细目Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface IGameBettingDetailsService { + /** + * 查询会员投注细目 + * + * @param id 会员投注细目主键 + * @return 会员投注细目 + */ + GameBettingDetails selectGameBettingDetailsById(Long id); + + /** + * 按投注id选择游戏投注详细信息 + * + * @param wagersIds 投注ID + * @return {@link List }<{@link Long }> + */ + List selectGameBettingDetailsByWagersId(List wagersIds, String platformCode); + + + /** + * 新增会员投注细目 + * + * @param gameBettingDetails 会员投注细目 + * @return 结果 + */ + int insertGameBettingDetails(GameBettingDetails gameBettingDetails); + + + /** + * 批量插入 + * + * @param bettingDetails 投注详情 + * @return int + */ + int batchInsert(List bettingDetails); + + /** + * 修改会员投注细目 + * + * @param gameBettingDetails 会员投注细目 + * @return 结果 + */ + int updateGameBettingDetails(GameBettingDetails gameBettingDetails); + + /** + * 批量删除会员投注细目 + * + * @param ids 需要删除的会员投注细目主键集合 + * @return 结果 + */ + int deleteGameBettingDetailsByIds(Long[] ids); + + /** + * 删除会员投注细目信息 + * + * @param id 会员投注细目主键 + * @return 结果 + */ + int deleteGameBettingDetailsById(Long id); + + /** + * 按投注id删除游戏投注详细信息 + * + * @param wagersId 投注id + * @return int + */ + int deleteGameBettingDetailsByWagersId(List wagersId); +} diff --git a/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java similarity index 50% rename from ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java index 111afbe..3124b59 100644 --- a/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java @@ -1,82 +1,61 @@ package com.ff.game.service; +import com.ff.game.domain.GameExchangeMoney; + import java.util.List; -import com.ff.game.domain.GameBettingDetails; -import com.ff.game.domain.GameExchangeMoney; -import com.ff.game.dto.GameExchangeMoneyDTO; - /** * 会员金额转移记录Service接口 - * + * * @author shi * @date 2025-02-10 */ -public interface IGameExchangeMoneyService -{ +public interface IGameExchangeMoneyService { /** * 查询会员金额转移记录 - * + * * @param id 会员金额转移记录主键 * @return 会员金额转移记录 */ - GameExchangeMoney selectGameExchangeMoneyById(Long id); + GameExchangeMoney selectGameExchangeMoneyById(Long id); /** * 查询会员金额转移记录列表 - * + * * @param gameExchangeMoney 会员金额转移记录 * @return 会员金额转移记录集合 */ - List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney); - - /** - * 选择游戏兑换货币列表 - * - * @param gameExchangeMoneyDTO 游戏兑换货币dto - * @return {@link List }<{@link GameExchangeMoneyDTO }> - */ - List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO); + List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney); /** * 新增会员金额转移记录 - * + * * @param gameExchangeMoney 会员金额转移记录 * @return 结果 */ - int insertGameExchangeMoney(GameExchangeMoney gameExchangeMoney); - - - /** - * 获取交易id - * - * @param prefix 前缀 - * @param length 长 - * @return {@link String } - */ - String getTransactionId(String prefix, int length ); + int insertGameExchangeMoney(GameExchangeMoney gameExchangeMoney); /** * 修改会员金额转移记录 - * + * * @param gameExchangeMoney 会员金额转移记录 * @return 结果 */ - int updateGameExchangeMoney(GameExchangeMoney gameExchangeMoney); + int updateGameExchangeMoney(GameExchangeMoney gameExchangeMoney); /** * 批量删除会员金额转移记录 - * + * * @param ids 需要删除的会员金额转移记录主键集合 * @return 结果 */ - int deleteGameExchangeMoneyByIds(Long[] ids); + int deleteGameExchangeMoneyByIds(Long[] ids); /** * 删除会员金额转移记录信息 - * + * * @param id 会员金额转移记录主键 * @return 结果 */ - int deleteGameExchangeMoneyById(Long id); + int deleteGameExchangeMoneyById(Long id); } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameFreeRecordService.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameFreeRecordService.java new file mode 100644 index 0000000..5864be6 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameFreeRecordService.java @@ -0,0 +1,62 @@ +package com.ff.game.service; + +import com.ff.game.domain.GameFreeRecord; + +import java.util.List; + +/** + * 免费赠送游戏记录Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface IGameFreeRecordService +{ + /** + * 查询免费赠送游戏记录 + * + * @param id 免费赠送游戏记录主键 + * @return 免费赠送游戏记录 + */ + GameFreeRecord selectGameFreeRecordById(Long id); + + /** + * 查询免费赠送游戏记录列表 + * + * @param gameFreeRecord 免费赠送游戏记录 + * @return 免费赠送游戏记录集合 + */ + List selectGameFreeRecordList(GameFreeRecord gameFreeRecord); + + /** + * 新增免费赠送游戏记录 + * + * @param gameFreeRecord 免费赠送游戏记录 + * @return 结果 + */ + int insertGameFreeRecord(GameFreeRecord gameFreeRecord); + + /** + * 修改免费赠送游戏记录 + * + * @param gameFreeRecord 免费赠送游戏记录 + * @return 结果 + */ + int updateGameFreeRecord(GameFreeRecord gameFreeRecord); + + /** + * 批量删除免费赠送游戏记录 + * + * @param ids 需要删除的免费赠送游戏记录主键集合 + * @return 结果 + */ + int deleteGameFreeRecordByIds(Long[] ids); + + /** + * 删除免费赠送游戏记录信息 + * + * @param id 免费赠送游戏记录主键 + * @return 结果 + */ + int deleteGameFreeRecordById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/game/service/IGameService.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameService.java similarity index 70% rename from ff-game/src/main/java/com/ff/game/service/IGameService.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameService.java index bab4681..81c0a19 100644 --- a/ff-game/src/main/java/com/ff/game/service/IGameService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IGameService.java @@ -1,9 +1,6 @@ package com.ff.game.service; -import com.ff.api.response.GameResponse; -import com.ff.game.api.request.GameUniqueDTO; import com.ff.game.domain.Game; -import com.ff.game.dto.GameDTO; import java.util.List; @@ -40,14 +37,6 @@ public interface IGameService { List selectGameList(Game game); - /** - * 选择游戏数据列表 - * - * @param gameDTO 游戏dto - * @return {@link List }<{@link Game }> - */ - List selectGameDTOList(GameDTO gameDTO); - /** * 新增平台子游戏管理 * @@ -87,20 +76,5 @@ public interface IGameService { */ Integer selectMaxSortNo(Integer platformType, String platformCode); - /** - * 选择游戏唯一列表 - * - * @param gameUniqueDTO 游戏独有dto - * @return {@link List }<{@link Game }> - */ - List selectGameUniqueList(GameUniqueDTO gameUniqueDTO); - - /** - * 选择游戏响应列表 - * - * @return {@link List }<{@link GameResponse }> - */ - List selectGameResponseList(); - } diff --git a/ff-game/src/main/java/com/ff/game/service/IPlatformService.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IPlatformService.java similarity index 86% rename from ff-game/src/main/java/com/ff/game/service/IPlatformService.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/IPlatformService.java index 2a8b704..6f1acb7 100644 --- a/ff-game/src/main/java/com/ff/game/service/IPlatformService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/IPlatformService.java @@ -21,7 +21,4 @@ public interface IPlatformService { int deleteByIds(String ids); - void loadToCache(); - - Platform get(String platformCode); } diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java similarity index 77% rename from ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java index 62ffbfe..e3276be 100644 --- a/ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java @@ -1,16 +1,13 @@ package com.ff.game.service.impl; -import java.util.Collections; -import java.util.List; - import cn.hutool.core.util.IdUtil; -import com.ff.base.utils.DateUtils; -import com.ff.game.dto.GameBettingDetailsDTO; +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.mapper.GameBettingDetailsMapper; +import com.ff.game.service.IGameBettingDetailsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.game.mapper.GameBettingDetailsMapper; -import com.ff.game.domain.GameBettingDetails; -import com.ff.game.service.IGameBettingDetailsService; + +import java.util.List; /** * 会员投注细目Service业务层处理 @@ -19,8 +16,7 @@ import com.ff.game.service.IGameBettingDetailsService; * @date 2025-02-10 */ @Service -public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService -{ +public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService { @Autowired private GameBettingDetailsMapper gameBettingDetailsMapper; @@ -31,8 +27,7 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService * @return 会员投注细目 */ @Override - public GameBettingDetails selectGameBettingDetailsById(Long id) - { + public GameBettingDetails selectGameBettingDetailsById(Long id) { return gameBettingDetailsMapper.selectGameBettingDetailsById(id); } @@ -44,20 +39,9 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService */ @Override public List selectGameBettingDetailsByWagersId(List wagersIds, String platformCode) { - return gameBettingDetailsMapper.selectGameBettingDetailsByWagersId(wagersIds,platformCode); + return gameBettingDetailsMapper.selectGameBettingDetailsByWagersId(wagersIds, platformCode); } - /** - * 查询会员投注细目列表 - * - * @param gameBettingDetailsDTO 会员投注细目 - * @return 会员投注细目 - */ - @Override - public List selectGameBettingDetailsList(GameBettingDetailsDTO gameBettingDetailsDTO) - { - return gameBettingDetailsMapper.selectGameBettingDetailsList(gameBettingDetailsDTO); - } /** * 新增会员投注细目 @@ -66,10 +50,9 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService * @return 结果 */ @Override - public int insertGameBettingDetails(GameBettingDetails gameBettingDetails) - { + public int insertGameBettingDetails(GameBettingDetails gameBettingDetails) { gameBettingDetails.setId(IdUtil.getSnowflakeNextId()); - gameBettingDetails.setCreateTime(DateUtils.getNowDate()); + gameBettingDetails.setCreateTime(System.currentTimeMillis()); return gameBettingDetailsMapper.insertGameBettingDetails(gameBettingDetails); } @@ -91,9 +74,8 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService * @return 结果 */ @Override - public int updateGameBettingDetails(GameBettingDetails gameBettingDetails) - { - gameBettingDetails.setUpdateTime(DateUtils.getNowDate()); + public int updateGameBettingDetails(GameBettingDetails gameBettingDetails) { + gameBettingDetails.setUpdateTime(System.currentTimeMillis()); return gameBettingDetailsMapper.updateGameBettingDetails(gameBettingDetails); } @@ -104,8 +86,7 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService * @return 结果 */ @Override - public int deleteGameBettingDetailsByIds(Long[] ids) - { + public int deleteGameBettingDetailsByIds(Long[] ids) { return gameBettingDetailsMapper.deleteGameBettingDetailsByIds(ids); } @@ -116,8 +97,7 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService * @return 结果 */ @Override - public int deleteGameBettingDetailsById(Long id) - { + public int deleteGameBettingDetailsById(Long id) { return gameBettingDetailsMapper.deleteGameBettingDetailsById(id); } diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java similarity index 62% rename from ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java index 059ede3..8985c45 100644 --- a/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java @@ -1,20 +1,15 @@ package com.ff.game.service.impl; -import java.util.Collections; -import java.util.List; - import cn.hutool.core.util.IdUtil; -import com.ff.base.enums.GamePlatforms; -import com.ff.base.utils.DateUtils; -import com.ff.base.utils.StringUtils; -import com.ff.game.dto.GameExchangeMoneyDTO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ff.game.mapper.GameExchangeMoneyMapper; import com.ff.game.domain.GameExchangeMoney; +import com.ff.game.mapper.GameExchangeMoneyMapper; import com.ff.game.service.IGameExchangeMoneyService; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; /** * 会员金额转移记录Service业务层处理 @@ -23,8 +18,7 @@ import org.springframework.util.ObjectUtils; * @date 2025-02-10 */ @Service -public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService -{ +public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService { @Autowired private GameExchangeMoneyMapper gameExchangeMoneyMapper; @@ -35,8 +29,7 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService * @return 会员金额转移记录 */ @Override - public GameExchangeMoney selectGameExchangeMoneyById(Long id) - { + public GameExchangeMoney selectGameExchangeMoneyById(Long id) { return gameExchangeMoneyMapper.selectGameExchangeMoneyById(id); } @@ -47,16 +40,10 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService * @return 会员金额转移记录 */ @Override - public List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney) - { + public List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney) { return gameExchangeMoneyMapper.selectGameExchangeMoneyList(gameExchangeMoney); } - @Override - public List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO) { - return gameExchangeMoneyMapper.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); - } - /** * 新增会员金额转移记录 * @@ -73,32 +60,6 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService return gameExchangeMoneyMapper.insertGameExchangeMoney(gameExchangeMoney); } - /** - * 获取交易id - * - * @param prefix 前缀 - * @param length 长 - * @return {@link String } - */ - @Override - public synchronized String getTransactionId(String prefix, int length) { - String transactionId = StringUtils.generateOrderId(prefix,length); - List gameExchangeMonies = this.selectGameExchangeMoneyList( - GameExchangeMoney.builder() - .transactionId(transactionId) - .build() - ); - while (!CollectionUtils.isEmpty(gameExchangeMonies)){ - transactionId = StringUtils.generateOrderId(prefix,length); - gameExchangeMonies = this.selectGameExchangeMoneyList( - GameExchangeMoney.builder() - .transactionId(transactionId) - .build() - ); - } - - return transactionId; - } /** * 修改会员金额转移记录 @@ -107,9 +68,8 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService * @return 结果 */ @Override - public int updateGameExchangeMoney(GameExchangeMoney gameExchangeMoney) - { - gameExchangeMoney.setUpdateTime(DateUtils.getNowDate()); + public int updateGameExchangeMoney(GameExchangeMoney gameExchangeMoney) { + gameExchangeMoney.setUpdateTime(System.currentTimeMillis()); return gameExchangeMoneyMapper.updateGameExchangeMoney(gameExchangeMoney); } @@ -120,8 +80,7 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService * @return 结果 */ @Override - public int deleteGameExchangeMoneyByIds(Long[] ids) - { + public int deleteGameExchangeMoneyByIds(Long[] ids) { return gameExchangeMoneyMapper.deleteGameExchangeMoneyByIds(ids); } @@ -132,8 +91,7 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService * @return 结果 */ @Override - public int deleteGameExchangeMoneyById(Long id) - { + public int deleteGameExchangeMoneyById(Long id) { return gameExchangeMoneyMapper.deleteGameExchangeMoneyById(id); } } diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java similarity index 85% rename from ff-game/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java index 7a710cf..d75add5 100644 --- a/ff-game/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java @@ -1,14 +1,13 @@ package com.ff.game.service.impl; -import java.util.List; - import cn.hutool.core.util.IdUtil; -import com.ff.base.utils.DateUtils; +import com.ff.game.domain.GameFreeRecord; +import com.ff.game.mapper.GameFreeRecordMapper; +import com.ff.game.service.IGameFreeRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.game.mapper.GameFreeRecordMapper; -import com.ff.game.domain.GameFreeRecord; -import com.ff.game.service.IGameFreeRecordService; + +import java.util.List; /** * 免费赠送游戏记录Service业务层处理 @@ -17,8 +16,7 @@ import com.ff.game.service.IGameFreeRecordService; * @date 2025-02-10 */ @Service -public class GameFreeRecordServiceImpl implements IGameFreeRecordService -{ +public class GameFreeRecordServiceImpl implements IGameFreeRecordService { @Autowired private GameFreeRecordMapper gameFreeRecordMapper; @@ -29,8 +27,7 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService * @return 免费赠送游戏记录 */ @Override - public GameFreeRecord selectGameFreeRecordById(Long id) - { + public GameFreeRecord selectGameFreeRecordById(Long id) { return gameFreeRecordMapper.selectGameFreeRecordById(id); } @@ -41,8 +38,7 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService * @return 免费赠送游戏记录 */ @Override - public List selectGameFreeRecordList(GameFreeRecord gameFreeRecord) - { + public List selectGameFreeRecordList(GameFreeRecord gameFreeRecord) { return gameFreeRecordMapper.selectGameFreeRecordList(gameFreeRecord); } @@ -53,10 +49,9 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService * @return 结果 */ @Override - public int insertGameFreeRecord(GameFreeRecord gameFreeRecord) - { + public int insertGameFreeRecord(GameFreeRecord gameFreeRecord) { gameFreeRecord.setId(IdUtil.getSnowflakeNextId()); - gameFreeRecord.setCreateTime(DateUtils.getNowDate()); + gameFreeRecord.setCreateTime(System.currentTimeMillis()); return gameFreeRecordMapper.insertGameFreeRecord(gameFreeRecord); } @@ -67,9 +62,8 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService * @return 结果 */ @Override - public int updateGameFreeRecord(GameFreeRecord gameFreeRecord) - { - gameFreeRecord.setUpdateTime(DateUtils.getNowDate()); + public int updateGameFreeRecord(GameFreeRecord gameFreeRecord) { + gameFreeRecord.setUpdateTime(System.currentTimeMillis()); return gameFreeRecordMapper.updateGameFreeRecord(gameFreeRecord); } @@ -80,8 +74,7 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService * @return 结果 */ @Override - public int deleteGameFreeRecordByIds(Long[] ids) - { + public int deleteGameFreeRecordByIds(Long[] ids) { return gameFreeRecordMapper.deleteGameFreeRecordByIds(ids); } @@ -92,8 +85,7 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService * @return 结果 */ @Override - public int deleteGameFreeRecordById(Long id) - { + public int deleteGameFreeRecordById(Long id) { return gameFreeRecordMapper.deleteGameFreeRecordById(id); } } diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameServiceImpl.java similarity index 65% rename from ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameServiceImpl.java index 4a1a969..964101e 100644 --- a/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/GameServiceImpl.java @@ -1,22 +1,14 @@ package com.ff.game.service.impl; import cn.hutool.core.util.IdUtil; -import com.ff.api.response.GameResponse; -import com.ff.base.utils.DateUtils; -import com.ff.game.api.IGamesService; -import com.ff.game.api.request.GameUniqueDTO; import com.ff.game.domain.Game; -import com.ff.game.dto.GameDTO; import com.ff.game.mapper.GameMapper; import com.ff.game.service.IGameService; -import com.ff.member.service.IMemberService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.util.List; -import java.util.Map; /** * 平台子游戏管理Service业务层处理 @@ -31,12 +23,6 @@ public class GameServiceImpl implements IGameService { @Autowired private GameMapper gameMapper; - @Resource - private IMemberService memberService; - - @Autowired - private Map gamesService; - /** * 查询平台子游戏管理 * @@ -70,16 +56,6 @@ public class GameServiceImpl implements IGameService { return gameMapper.selectGameList(game); } - /** - * 选择游戏数据列表 - * - * @param gameDTO 游戏dto - * @return {@link List }<{@link Game }> - */ - @Override - public List selectGameDTOList(GameDTO gameDTO) { - return gameMapper.selectGameDTOList(gameDTO); - } /** * 新增平台子游戏管理 @@ -92,7 +68,7 @@ public class GameServiceImpl implements IGameService { if (game.getId() == null) { game.setId(IdUtil.getSnowflakeNextId()); } - game.setCreateTime(DateUtils.getNowDate()); + game.setCreateTime(System.currentTimeMillis()); return gameMapper.insertGame(game); } @@ -104,7 +80,7 @@ public class GameServiceImpl implements IGameService { */ @Override public int updateGame(Game game) { - game.setUpdateTime(DateUtils.getNowDate()); + game.setUpdateTime(System.currentTimeMillis()); return gameMapper.updateGame(game); } @@ -130,31 +106,9 @@ public class GameServiceImpl implements IGameService { return gameMapper.deleteGameById(id); } - /** - * 选择游戏唯一列表 - * - * @param gameUniqueDTO 游戏独有dto - * @return {@link List }<{@link Game }> - */ - @Override - public List selectGameUniqueList(GameUniqueDTO gameUniqueDTO) { - return gameMapper.selectGameUniqueList(gameUniqueDTO); - } - - /** - * 选择游戏响应列表 - * - * @return {@link List }<{@link GameResponse }> - */ - @Override - public List selectGameResponseList() { - return gameMapper.selectGameResponseList(); - } - @Override public Integer selectMaxSortNo(Integer platformType, String platformCode) { return gameMapper.selectMaxSortNoBy(platformType, platformCode); } - } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/PlatformServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/PlatformServiceImpl.java new file mode 100644 index 0000000..b146b87 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/game/service/impl/PlatformServiceImpl.java @@ -0,0 +1,50 @@ +package com.ff.game.service.impl; + +import com.ff.game.domain.Platform; +import com.ff.game.mapper.PlatformMapper; +import com.ff.game.service.IPlatformService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author cengy + */ +@Service +public class PlatformServiceImpl implements IPlatformService { + + @Autowired + PlatformMapper platformMapper; + + @Override + public List selectList(Platform platform) { + return platformMapper.selectList(platform); + } + + @Override + public Platform selectByPlatformCode(String platformCode) { + return platformMapper.selectByPlatformCode(platformCode); + } + + @Override + public int updatePlatform(Platform platform) { + return platformMapper.updatePlatform(platform); + } + + @Override + public int insertPlatform(Platform platform) { + return platformMapper.insertPlatform(platform); + } + + @Override + public int deleteById(Long id) { + return platformMapper.deleteById(id); + } + + @Override + public int deleteByIds(String ids) { + return platformMapper.deleteByIds(ids); + } + +} diff --git a/ff-game/src/main/java/com/ff/member/domain/Member.java b/ff-bean/ff-domain/src/main/java/com/ff/member/domain/Member.java similarity index 65% rename from ff-game/src/main/java/com/ff/member/domain/Member.java rename to ff-bean/ff-domain/src/main/java/com/ff/member/domain/Member.java index 93535ce..19c7d77 100644 --- a/ff-game/src/main/java/com/ff/member/domain/Member.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/member/domain/Member.java @@ -2,10 +2,8 @@ package com.ff.member.domain; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -20,32 +18,38 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @SuperBuilder -public class Member extends BaseEntity -{ +public class Member extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 租户key */ - @Excel(name = "租户key") + /** + * 租户key + */ private String tenantKey; - /** 会员账号 */ - @Excel(name = "会员账号") + /** + * 会员账号 + */ private String memberAccount; - /** 游戏账号 */ - @Excel(name = "游戏账号") + /** + * 游戏账号 + */ private String gameAccount; - /** 平台编码 */ - @Excel(name = "平台编码") + /** + * 平台编码 + */ private String platformCode; - /** 币种编码 */ - @Excel(name = "币种编码") + /** + * 币种编码 + */ private String currencyCode; diff --git a/ff-game/src/main/java/com/ff/member/mapper/MemberMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/member/mapper/MemberMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/member/mapper/MemberMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/member/mapper/MemberMapper.java index 761e12b..0d0f61c 100644 --- a/ff-game/src/main/java/com/ff/member/mapper/MemberMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/member/mapper/MemberMapper.java @@ -1,9 +1,10 @@ package com.ff.member.mapper; -import java.util.List; import com.ff.member.domain.Member; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 会员Mapper接口 * diff --git a/ff-game/src/main/java/com/ff/member/service/IMemberService.java b/ff-bean/ff-domain/src/main/java/com/ff/member/service/IMemberService.java similarity index 63% rename from ff-game/src/main/java/com/ff/member/service/IMemberService.java rename to ff-bean/ff-domain/src/main/java/com/ff/member/service/IMemberService.java index 6aa977d..6cef989 100644 --- a/ff-game/src/main/java/com/ff/member/service/IMemberService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/member/service/IMemberService.java @@ -1,72 +1,63 @@ package com.ff.member.service; -import java.util.List; import com.ff.member.domain.Member; +import java.util.List; + /** * 会员Service接口 - * + * * @author shi * @date 2025-02-10 */ -public interface IMemberService -{ +public interface IMemberService { /** * 查询会员 - * + * * @param id 会员主键 * @return 会员 */ - Member selectMemberById(Long id); + Member selectMemberById(Long id); /** * 查询会员列表 - * + * * @param member 会员 * @return 会员集合 */ - List selectMemberList(Member member); - - /** - * 生成会员游戏账号 - * - * @param platformCode 平台代码 - * @param tenantSn 租户sn - * @return {@link String } - */ - String getMemberGameAccount(String platformCode,String tenantSn); + List selectMemberList(Member member); /** * 新增会员 - * + * * @param member 会员 * @return 结果 */ - int insertMember(Member member); + int insertMember(Member member); /** * 修改会员 - * + * * @param member 会员 * @return 结果 */ - int updateMember(Member member); + int updateMember(Member member); /** * 批量删除会员 - * + * * @param ids 需要删除的会员主键集合 * @return 结果 */ - int deleteMemberByIds(Long[] ids); + int deleteMemberByIds(Long[] ids); /** * 删除会员信息 - * + * * @param id 会员主键 * @return 结果 */ - int deleteMemberById(Long id); + int deleteMemberById(Long id); /** @@ -85,5 +76,5 @@ public interface IMemberService * @param platformCode 平台代码 * @return {@link Member } */ - Member selectMemberByAccount(String account,String currencyCode,String platformCode); + Member selectMemberByAccount(String account, String currencyCode, String platformCode); } diff --git a/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java similarity index 64% rename from ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java index a21b96a..dba8442 100644 --- a/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java @@ -1,18 +1,14 @@ package com.ff.member.service.impl; -import java.util.List; - import cn.hutool.core.util.IdUtil; -import com.ff.base.enums.GamePlatforms; -import com.ff.base.enums.PlatformType; -import com.ff.base.utils.DateUtils; -import com.ff.base.utils.RandomGeneratorUtils; +import com.ff.member.domain.Member; +import com.ff.member.mapper.MemberMapper; +import com.ff.member.service.IMemberService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.member.mapper.MemberMapper; -import com.ff.member.domain.Member; -import com.ff.member.service.IMemberService; -import org.springframework.util.ObjectUtils; + +import java.util.List; /** * 会员Service业务层处理 @@ -47,33 +43,6 @@ public class MemberServiceImpl implements IMemberService { return memberMapper.selectMemberList(member); } - /** - * 获取会员游戏账号 - * - * @return {@link String } - */ - @Override - public synchronized String getMemberGameAccount(String platformCode,String tenantSn) { - String gameAccount = null; - if (GamePlatforms.DG.getInfo().equals(platformCode) || GamePlatforms.KM.getInfo().equals(platformCode)) { - tenantSn=tenantSn.toUpperCase(); - do { - gameAccount = RandomGeneratorUtils.generateRandomAccountUpper()+tenantSn; - } while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))); - } else if (GamePlatforms.PG.getInfo().equals(platformCode) || GamePlatforms.PGX.getInfo().equals(platformCode) || GamePlatforms.PGT.getInfo().equals(platformCode)) { - tenantSn=tenantSn.toLowerCase(); - do { - gameAccount = RandomGeneratorUtils.generateRandomAccountLower()+tenantSn; - } while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))); - } else { - do { - gameAccount = RandomGeneratorUtils.generateRandomAccount()+tenantSn; - } while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))); - } - - - return gameAccount; - } /** * 新增会员 diff --git a/ff-bean/ff-domain/src/main/java/com/ff/sys/domain/SysFeedback.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/domain/SysFeedback.java new file mode 100644 index 0000000..da3731c --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/domain/SysFeedback.java @@ -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; + + +} diff --git a/ff-game/src/main/java/com/ff/sys/domain/SysNotice.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/domain/SysNotice.java similarity index 60% rename from ff-game/src/main/java/com/ff/sys/domain/SysNotice.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/domain/SysNotice.java index a36fff3..71eac6d 100644 --- a/ff-game/src/main/java/com/ff/sys/domain/SysNotice.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/domain/SysNotice.java @@ -1,8 +1,8 @@ package com.ff.sys.domain; -import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; + /** * 系统公告对象 ff_sys_notice * @@ -10,19 +10,22 @@ import lombok.Data; * @date 2025-02-28 */ @Data -public class SysNotice extends BaseEntity -{ +public class SysNotice extends BaseEntity { private static final long serialVersionUID = 1L; - /** $column.columnComment */ + /** + * $column.columnComment + */ private Long id; - /** 标题 */ - @Excel(name = "标题") + /** + * 标题 + */ private String title; - /** 内容 */ - @Excel(name = "内容") + /** + * 内容 + */ private String content; diff --git a/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java index 79cdd25..00383ac 100644 --- a/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java @@ -1,8 +1,9 @@ package com.ff.sys.mapper; -import java.util.List; import com.ff.sys.domain.SysFeedback; +import java.util.List; + /** * 系统反馈Mapper接口 * diff --git a/ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java similarity index 99% rename from ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java index 3adc3a6..218c113 100644 --- a/ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java @@ -1,8 +1,9 @@ package com.ff.sys.mapper; -import java.util.List; import com.ff.sys.domain.SysNotice; +import java.util.List; + /** * 系统公告Mapper接口 * diff --git a/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/ISysFeedbackService.java similarity index 67% rename from ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/service/ISysFeedbackService.java index 1a5a43b..583a5b6 100644 --- a/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/ISysFeedbackService.java @@ -1,61 +1,61 @@ package com.ff.sys.service; -import java.util.List; import com.ff.sys.domain.SysFeedback; +import java.util.List; + /** * 系统反馈Service接口 - * + * * @author shi * @date 2025-02-27 */ -public interface ISysFeedbackService -{ +public interface ISysFeedbackService { /** * 查询系统反馈 - * + * * @param id 系统反馈主键 * @return 系统反馈 */ - SysFeedback selectSysFeedbackById(Long id); + SysFeedback selectSysFeedbackById(Long id); /** * 查询系统反馈列表 - * + * * @param sysFeedback 系统反馈 * @return 系统反馈集合 */ - List selectSysFeedbackList(SysFeedback sysFeedback); + List selectSysFeedbackList(SysFeedback sysFeedback); /** * 新增系统反馈 - * + * * @param sysFeedback 系统反馈 * @return 结果 */ - int insertSysFeedback(SysFeedback sysFeedback); + int insertSysFeedback(SysFeedback sysFeedback); /** * 修改系统反馈 - * + * * @param sysFeedback 系统反馈 * @return 结果 */ - int updateSysFeedback(SysFeedback sysFeedback); + int updateSysFeedback(SysFeedback sysFeedback); /** * 批量删除系统反馈 - * + * * @param ids 需要删除的系统反馈主键集合 * @return 结果 */ - int deleteSysFeedbackByIds(Long[] ids); + int deleteSysFeedbackByIds(Long[] ids); /** * 删除系统反馈信息 - * + * * @param id 系统反馈主键 * @return 结果 */ - int deleteSysFeedbackById(Long id); + int deleteSysFeedbackById(Long id); } diff --git a/ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/ISysNoticeService.java similarity index 68% rename from ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/service/ISysNoticeService.java index bc2d210..27a3343 100644 --- a/ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/ISysNoticeService.java @@ -1,61 +1,61 @@ package com.ff.sys.service; -import java.util.List; import com.ff.sys.domain.SysNotice; +import java.util.List; + /** * 系统公告Service接口 - * + * * @author shi * @date 2025-02-28 */ -public interface ISysNoticeService -{ +public interface ISysNoticeService { /** * 查询系统公告 - * + * * @param id 系统公告主键 * @return 系统公告 */ - SysNotice selectSysNoticeById(Long id); + SysNotice selectSysNoticeById(Long id); /** * 查询系统公告列表 - * + * * @param sysNotice 系统公告 * @return 系统公告集合 */ - List selectSysNoticeList(SysNotice sysNotice); + List selectSysNoticeList(SysNotice sysNotice); /** * 新增系统公告 - * + * * @param sysNotice 系统公告 * @return 结果 */ - int insertSysNotice(SysNotice sysNotice); + int insertSysNotice(SysNotice sysNotice); /** * 修改系统公告 - * + * * @param sysNotice 系统公告 * @return 结果 */ - int updateSysNotice(SysNotice sysNotice); + int updateSysNotice(SysNotice sysNotice); /** * 批量删除系统公告 - * + * * @param ids 需要删除的系统公告主键集合 * @return 结果 */ - int deleteSysNoticeByIds(Long[] ids); + int deleteSysNoticeByIds(Long[] ids); /** * 删除系统公告信息 - * + * * @param id 系统公告主键 * @return 结果 */ - int deleteSysNoticeById(Long id); + int deleteSysNoticeById(Long id); } diff --git a/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java similarity index 84% rename from ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java index 478565a..a6af988 100644 --- a/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java @@ -1,13 +1,14 @@ package com.ff.sys.service.impl; -import java.util.List; -import com.ff.base.utils.DateUtils; +import cn.hutool.core.util.IdUtil; +import com.ff.sys.domain.SysFeedback; +import com.ff.sys.mapper.SysFeedbackMapper; +import com.ff.sys.service.ISysFeedbackService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.sys.mapper.SysFeedbackMapper; -import com.ff.sys.domain.SysFeedback; -import com.ff.sys.service.ISysFeedbackService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** @@ -17,8 +18,7 @@ import cn.hutool.core.util.IdUtil; * @date 2025-02-27 */ @Service -public class SysFeedbackServiceImpl implements ISysFeedbackService -{ +public class SysFeedbackServiceImpl implements ISysFeedbackService { @Autowired private SysFeedbackMapper sysFeedbackMapper; @@ -29,8 +29,7 @@ public class SysFeedbackServiceImpl implements ISysFeedbackService * @return 系统反馈 */ @Override - public SysFeedback selectSysFeedbackById(Long id) - { + public SysFeedback selectSysFeedbackById(Long id) { return sysFeedbackMapper.selectSysFeedbackById(id); } @@ -41,8 +40,7 @@ public class SysFeedbackServiceImpl implements ISysFeedbackService * @return 系统反馈 */ @Override - public List selectSysFeedbackList(SysFeedback sysFeedback) - { + public List selectSysFeedbackList(SysFeedback sysFeedback) { return sysFeedbackMapper.selectSysFeedbackList(sysFeedback); } @@ -53,8 +51,7 @@ public class SysFeedbackServiceImpl implements ISysFeedbackService * @return 结果 */ @Override - public int insertSysFeedback(SysFeedback sysFeedback) - { + public int insertSysFeedback(SysFeedback sysFeedback) { sysFeedback.setId(IdUtil.getSnowflakeNextId()); sysFeedback.setCreateTime(DateUtils.getNowDate()); return sysFeedbackMapper.insertSysFeedback(sysFeedback); @@ -67,8 +64,7 @@ public class SysFeedbackServiceImpl implements ISysFeedbackService * @return 结果 */ @Override - public int updateSysFeedback(SysFeedback sysFeedback) - { + public int updateSysFeedback(SysFeedback sysFeedback) { sysFeedback.setUpdateTime(DateUtils.getNowDate()); return sysFeedbackMapper.updateSysFeedback(sysFeedback); } @@ -80,8 +76,7 @@ public class SysFeedbackServiceImpl implements ISysFeedbackService * @return 结果 */ @Override - public int deleteSysFeedbackByIds(Long[] ids) - { + public int deleteSysFeedbackByIds(Long[] ids) { return sysFeedbackMapper.deleteSysFeedbackByIds(ids); } @@ -92,8 +87,7 @@ public class SysFeedbackServiceImpl implements ISysFeedbackService * @return 结果 */ @Override - public int deleteSysFeedbackById(Long id) - { + public int deleteSysFeedbackById(Long id) { return sysFeedbackMapper.deleteSysFeedbackById(id); } } diff --git a/ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java similarity index 82% rename from ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java index 497c005..9187bbb 100644 --- a/ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java @@ -1,13 +1,14 @@ package com.ff.sys.service.impl; -import java.util.List; -import com.ff.base.utils.DateUtils; +import cn.hutool.core.util.IdUtil; +import com.ff.sys.domain.SysNotice; +import com.ff.sys.mapper.SysNoticeMapper; +import com.ff.sys.service.ISysNoticeService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.sys.mapper.SysNoticeMapper; -import com.ff.sys.domain.SysNotice; -import com.ff.sys.service.ISysNoticeService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** @@ -17,8 +18,7 @@ import cn.hutool.core.util.IdUtil; * @date 2025-02-28 */ @Service -public class SysNoticeServiceImpl implements ISysNoticeService -{ +public class SysNoticeServiceImpl implements ISysNoticeService { @Autowired private SysNoticeMapper sysNoticeMapper; @@ -29,8 +29,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService * @return 系统公告 */ @Override - public SysNotice selectSysNoticeById(Long id) - { + public SysNotice selectSysNoticeById(Long id) { return sysNoticeMapper.selectSysNoticeById(id); } @@ -41,8 +40,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService * @return 系统公告 */ @Override - public List selectSysNoticeList(SysNotice sysNotice) - { + public List selectSysNoticeList(SysNotice sysNotice) { return sysNoticeMapper.selectSysNoticeList(sysNotice); } @@ -53,8 +51,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService * @return 结果 */ @Override - public int insertSysNotice(SysNotice sysNotice) - { + public int insertSysNotice(SysNotice sysNotice) { sysNotice.setId(IdUtil.getSnowflakeNextId()); sysNotice.setCreateTime(DateUtils.getNowDate()); return sysNoticeMapper.insertSysNotice(sysNotice); @@ -67,8 +64,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService * @return 结果 */ @Override - public int updateSysNotice(SysNotice sysNotice) - { + public int updateSysNotice(SysNotice sysNotice) { sysNotice.setUpdateTime(DateUtils.getNowDate()); return sysNoticeMapper.updateSysNotice(sysNotice); } @@ -80,8 +76,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService * @return 结果 */ @Override - public int deleteSysNoticeByIds(Long[] ids) - { + public int deleteSysNoticeByIds(Long[] ids) { return sysNoticeMapper.deleteSysNoticeByIds(ids); } @@ -92,8 +87,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService * @return 结果 */ @Override - public int deleteSysNoticeById(Long id) - { + public int deleteSysNoticeById(Long id) { return sysNoticeMapper.deleteSysNoticeById(id); } } diff --git a/ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantAgentPlatformMapper.java similarity index 64% rename from ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantAgentPlatformMapper.java index 6132429..7266c5b 100644 --- a/ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantAgentPlatformMapper.java @@ -1,61 +1,61 @@ -package com.ff.common.mapper; +package com.ff.tenant.mapper; + +import com.ff.common.domain.TenantAgentPlatform; import java.util.List; -import com.ff.common.domain.TenantAgentPlatform; /** * 平台利润成本管理Mapper接口 - * + * * @author shi * @date 2025-02-27 */ -public interface TenantAgentPlatformMapper -{ +public interface TenantAgentPlatformMapper { /** * 查询平台利润成本管理 - * + * * @param id 平台利润成本管理主键 * @return 平台利润成本管理 */ - TenantAgentPlatform selectTenantAgentPlatformById(Long id); + TenantAgentPlatform selectTenantAgentPlatformById(Long id); /** * 查询平台利润成本管理列表 - * + * * @param tenantAgentPlatform 平台利润成本管理 * @return 平台利润成本管理集合 */ - List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform); + List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform); /** * 新增平台利润成本管理 - * + * * @param tenantAgentPlatform 平台利润成本管理 * @return 结果 */ - int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); + int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); /** * 修改平台利润成本管理 - * + * * @param tenantAgentPlatform 平台利润成本管理 * @return 结果 */ - int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); + int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); /** * 删除平台利润成本管理 - * + * * @param id 平台利润成本管理主键 * @return 结果 */ - int deleteTenantAgentPlatformById(Long id); + int deleteTenantAgentPlatformById(Long id); /** * 批量删除平台利润成本管理 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteTenantAgentPlatformByIds(Long[] ids); + int deleteTenantAgentPlatformByIds(Long[] ids); } diff --git a/ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantGameQuotaFlowMapper.java similarity index 72% rename from ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantGameQuotaFlowMapper.java index 7999131..6edd7e9 100644 --- a/ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantGameQuotaFlowMapper.java @@ -1,65 +1,64 @@ -package com.ff.common.mapper; +package com.ff.tenant.mapper; + +import com.ff.common.domain.TenantGameQuotaFlow; import java.math.BigDecimal; import java.util.List; -import com.ff.common.domain.TenantGameQuotaFlow; -import org.apache.ibatis.annotations.Param; /** * 租户游戏额度流水Mapper接口 - * + * * @author shi * @date 2025-02-12 */ -public interface TenantGameQuotaFlowMapper -{ +public interface TenantGameQuotaFlowMapper { /** * 查询租户游戏额度流水 - * + * * @param id 租户游戏额度流水主键 * @return 租户游戏额度流水 */ - TenantGameQuotaFlow selectTenantGameQuotaFlowById(Long id); + TenantGameQuotaFlow selectTenantGameQuotaFlowById(Long id); /** * 查询租户游戏额度流水列表 - * + * * @param tenantGameQuotaFlow 租户游戏额度流水 * @return 租户游戏额度流水集合 */ - List selectTenantGameQuotaFlowList(TenantGameQuotaFlow tenantGameQuotaFlow); + List selectTenantGameQuotaFlowList(TenantGameQuotaFlow tenantGameQuotaFlow); /** * 新增租户游戏额度流水 - * + * * @param tenantGameQuotaFlow 租户游戏额度流水 * @return 结果 */ - int insertTenantGameQuotaFlow(TenantGameQuotaFlow tenantGameQuotaFlow); + int insertTenantGameQuotaFlow(TenantGameQuotaFlow tenantGameQuotaFlow); /** * 修改租户游戏额度流水 - * + * * @param tenantGameQuotaFlow 租户游戏额度流水 * @return 结果 */ - int updateTenantGameQuotaFlow(TenantGameQuotaFlow tenantGameQuotaFlow); + int updateTenantGameQuotaFlow(TenantGameQuotaFlow tenantGameQuotaFlow); /** * 删除租户游戏额度流水 - * + * * @param id 租户游戏额度流水主键 * @return 结果 */ - int deleteTenantGameQuotaFlowById(Long id); + int deleteTenantGameQuotaFlowById(Long id); /** * 批量删除租户游戏额度流水 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteTenantGameQuotaFlowByIds(Long[] ids); + int deleteTenantGameQuotaFlowByIds(Long[] ids); /** diff --git a/ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantGameQuotaMapper.java similarity index 94% rename from ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantGameQuotaMapper.java index aa1873c..73d9ff5 100644 --- a/ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantGameQuotaMapper.java @@ -1,10 +1,10 @@ -package com.ff.common.mapper; - -import java.util.List; +package com.ff.tenant.mapper; import com.ff.common.domain.TenantGameQuota; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 租户游戏配额Mapper接口 * @@ -27,7 +27,7 @@ public interface TenantGameQuotaMapper { * @param tenantKey 租户游戏配额主键 * @return 租户游戏配额 */ - TenantGameQuota selectTenantGameQuotaByTenantKey(@Param("tenantKey") String tenantKey,@Param("quotaType") String quotaType); + TenantGameQuota selectTenantGameQuotaByTenantKey(@Param("tenantKey") String tenantKey, @Param("quotaType") String quotaType); /** * 查询租户游戏配额列表 diff --git a/ff-game/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantQuotaExchangeMapper.java similarity index 64% rename from ff-game/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantQuotaExchangeMapper.java index a2f373e..db62b69 100644 --- a/ff-game/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/mapper/TenantQuotaExchangeMapper.java @@ -1,64 +1,64 @@ -package com.ff.common.mapper; +package com.ff.tenant.mapper; -import java.util.List; import com.ff.common.domain.TenantQuotaExchange; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 币种汇率Mapper接口 - * + * * @author shi * @date 2025-02-21 */ -public interface TenantQuotaExchangeMapper -{ +public interface TenantQuotaExchangeMapper { /** * 查询币种汇率 - * + * * @param id 币种汇率主键 * @return 币种汇率 */ - TenantQuotaExchange selectTenantQuotaExchangeById(Long id); + TenantQuotaExchange selectTenantQuotaExchangeById(Long id); /** * 查询币种汇率列表 - * + * * @param tenantQuotaExchange 币种汇率 * @return 币种汇率集合 */ - List selectTenantQuotaExchangeList(TenantQuotaExchange tenantQuotaExchange); + List selectTenantQuotaExchangeList(TenantQuotaExchange tenantQuotaExchange); /** * 新增币种汇率 - * + * * @param tenantQuotaExchange 币种汇率 * @return 结果 */ - int insertTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange); + int insertTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange); /** * 修改币种汇率 - * + * * @param tenantQuotaExchange 币种汇率 * @return 结果 */ - int updateTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange); + int updateTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange); /** * 删除币种汇率 - * + * * @param id 币种汇率主键 * @return 结果 */ - int deleteTenantQuotaExchangeById(Long id); + int deleteTenantQuotaExchangeById(Long id); /** * 批量删除币种汇率 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ - int deleteTenantQuotaExchangeByIds(Long[] ids); + int deleteTenantQuotaExchangeByIds(Long[] ids); /** * 获取租户配额交换 @@ -67,6 +67,6 @@ public interface TenantQuotaExchangeMapper * @param exchangeCurrencyCode 兑换货币代码 * @return {@link TenantQuotaExchange } */ - TenantQuotaExchange getTenantQuotaExchange(@Param("currencyCode") String currencyCode, @Param("exchangeCurrencyCode") String exchangeCurrencyCode); + TenantQuotaExchange getTenantQuotaExchange(@Param("currencyCode") String currencyCode, @Param("exchangeCurrencyCode") String exchangeCurrencyCode); } diff --git a/ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantAgentPlatformService.java similarity index 97% rename from ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantAgentPlatformService.java index 4306d71..9fbfa02 100644 --- a/ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantAgentPlatformService.java @@ -1,7 +1,8 @@ -package com.ff.common.service; +package com.ff.tenant.service; + +import com.ff.common.domain.TenantAgentPlatform; import java.util.List; -import com.ff.common.domain.TenantAgentPlatform; /** * 平台利润成本管理Service接口 diff --git a/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantGameQuotaFlowService.java similarity index 98% rename from ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantGameQuotaFlowService.java index bc19039..2be8301 100644 --- a/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantGameQuotaFlowService.java @@ -1,8 +1,9 @@ -package com.ff.common.service; +package com.ff.tenant.service; + +import com.ff.common.domain.TenantGameQuotaFlow; import java.math.BigDecimal; import java.util.List; -import com.ff.common.domain.TenantGameQuotaFlow; /** * 租户游戏额度流水Service接口 diff --git a/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantGameQuotaService.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantGameQuotaService.java new file mode 100644 index 0000000..aac6221 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantGameQuotaService.java @@ -0,0 +1,70 @@ +package com.ff.tenant.service; + +import com.ff.common.domain.TenantGameQuota; + +import java.util.List; + +/** + * 租户游戏配额Service接口 + * + * @author shi + * @date 2025-02-12 + */ +public interface ITenantGameQuotaService { + /** + * 查询租户游戏配额 + * + * @param id 租户游戏配额主键 + * @return 租户游戏配额 + */ + TenantGameQuota selectTenantGameQuotaById(Long id); + + + /** + * 查询租户游戏配额列表 + * + * @param tenantGameQuota 租户游戏配额 + * @return 租户游戏配额集合 + */ + List selectTenantGameQuotaList(TenantGameQuota tenantGameQuota); + + /** + * 新增租户游戏配额 + * + * @param tenantGameQuota 租户游戏配额 + * @return 结果 + */ + int insertTenantGameQuota(TenantGameQuota tenantGameQuota); + + /** + * 修改租户游戏配额 + * + * @param tenantGameQuota 租户游戏配额 + * @return 结果 + */ + int updateTenantGameQuota(TenantGameQuota tenantGameQuota); + + /** + * 批量删除租户游戏配额 + * + * @param ids 需要删除的租户游戏配额主键集合 + * @return 结果 + */ + int deleteTenantGameQuotaByIds(Long[] ids); + + /** + * 删除租户游戏配额信息 + * + * @param id 租户游戏配额主键 + * @return 结果 + */ + int deleteTenantGameQuotaById(Long id); + + /** + * 查询租户游戏配额 + * + * @param tenantKey 租户游戏配额主键 + * @return 租户游戏配额 + */ + TenantGameQuota selectTenantGameQuotaByTenantKey(String tenantKey, String quotaType); +} diff --git a/ff-game/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantQuotaExchangeService.java similarity index 95% rename from ff-game/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantQuotaExchangeService.java index 38e70b5..e410b4d 100644 --- a/ff-game/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/ITenantQuotaExchangeService.java @@ -1,8 +1,8 @@ -package com.ff.common.service; +package com.ff.tenant.service; + +import com.ff.common.domain.TenantQuotaExchange; import java.util.List; -import com.ff.common.domain.TenantQuotaExchange; -import org.apache.poi.ss.formula.functions.T; /** * 币种汇率Service接口 diff --git a/ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantAgentPlatformServiceImpl.java similarity index 84% rename from ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantAgentPlatformServiceImpl.java index 1c45aa6..42cb16f 100644 --- a/ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantAgentPlatformServiceImpl.java @@ -1,13 +1,14 @@ -package com.ff.common.service.impl; +package com.ff.tenant.service.impl; -import java.util.List; -import com.ff.base.utils.DateUtils; +import cn.hutool.core.util.IdUtil; +import com.ff.common.domain.TenantAgentPlatform; +import com.ff.tenant.mapper.TenantAgentPlatformMapper; +import com.ff.tenant.service.ITenantAgentPlatformService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.common.mapper.TenantAgentPlatformMapper; -import com.ff.common.domain.TenantAgentPlatform; -import com.ff.common.service.ITenantAgentPlatformService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** @@ -17,8 +18,7 @@ import cn.hutool.core.util.IdUtil; * @date 2025-02-27 */ @Service -public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformService -{ +public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformService { @Autowired private TenantAgentPlatformMapper tenantAgentPlatformMapper; @@ -29,8 +29,7 @@ public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformServi * @return 平台利润成本管理 */ @Override - public TenantAgentPlatform selectTenantAgentPlatformById(Long id) - { + public TenantAgentPlatform selectTenantAgentPlatformById(Long id) { return tenantAgentPlatformMapper.selectTenantAgentPlatformById(id); } @@ -41,8 +40,7 @@ public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformServi * @return 平台利润成本管理 */ @Override - public List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform) - { + public List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform) { return tenantAgentPlatformMapper.selectTenantAgentPlatformList(tenantAgentPlatform); } @@ -53,8 +51,7 @@ public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformServi * @return 结果 */ @Override - public int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform) - { + public int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform) { tenantAgentPlatform.setId(IdUtil.getSnowflakeNextId()); tenantAgentPlatform.setCreateTime(DateUtils.getNowDate()); return tenantAgentPlatformMapper.insertTenantAgentPlatform(tenantAgentPlatform); @@ -67,8 +64,7 @@ public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformServi * @return 结果 */ @Override - public int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform) - { + public int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform) { tenantAgentPlatform.setUpdateTime(DateUtils.getNowDate()); return tenantAgentPlatformMapper.updateTenantAgentPlatform(tenantAgentPlatform); } @@ -80,8 +76,7 @@ public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformServi * @return 结果 */ @Override - public int deleteTenantAgentPlatformByIds(Long[] ids) - { + public int deleteTenantAgentPlatformByIds(Long[] ids) { return tenantAgentPlatformMapper.deleteTenantAgentPlatformByIds(ids); } @@ -92,8 +87,7 @@ public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformServi * @return 结果 */ @Override - public int deleteTenantAgentPlatformById(Long id) - { + public int deleteTenantAgentPlatformById(Long id) { return tenantAgentPlatformMapper.deleteTenantAgentPlatformById(id); } } diff --git a/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaFlowServiceImpl.java similarity index 90% rename from ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaFlowServiceImpl.java index 4c4f790..45df477 100644 --- a/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaFlowServiceImpl.java @@ -1,16 +1,16 @@ -package com.ff.common.service.impl; +package com.ff.tenant.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.ff.common.domain.TenantGameQuotaFlow; +import com.ff.tenant.mapper.TenantGameQuotaFlowMapper; +import com.ff.tenant.service.ITenantGameQuotaFlowService; +import com.ff.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; -import cn.hutool.core.util.IdUtil; -import com.ff.base.utils.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ff.common.mapper.TenantGameQuotaFlowMapper; -import com.ff.common.domain.TenantGameQuotaFlow; -import com.ff.common.service.ITenantGameQuotaFlowService; - /** * 租户游戏额度流水Service业务层处理 * @@ -52,7 +52,7 @@ public class TenantGameQuotaFlowServiceImpl implements ITenantGameQuotaFlowServi */ @Override public int insertTenantGameQuotaFlow(TenantGameQuotaFlow tenantGameQuotaFlow) { - tenantGameQuotaFlow.setId(IdUtil.getSnowflakeNextId()); + tenantGameQuotaFlow.setId(IdUtil.getSnowflakeNextId()); tenantGameQuotaFlow.setCreateTime(DateUtils.getNowDate()); return tenantGameQuotaFlowMapper.insertTenantGameQuotaFlow(tenantGameQuotaFlow); } @@ -110,7 +110,7 @@ public class TenantGameQuotaFlowServiceImpl implements ITenantGameQuotaFlowServi * @return {@link List }<{@link TenantGameQuotaFlow }> */ @Override - public List getBalanceByTenantKey(TenantGameQuotaFlow tenantGameQuotaFlow) { + public List getBalanceByTenantKey(TenantGameQuotaFlow tenantGameQuotaFlow) { return tenantGameQuotaFlowMapper.getBalanceByTenantKey(tenantGameQuotaFlow); } } diff --git a/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaServiceImpl.java new file mode 100644 index 0000000..3264d95 --- /dev/null +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaServiceImpl.java @@ -0,0 +1,121 @@ +package com.ff.tenant.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.ff.common.domain.TenantGameQuota; +import com.ff.tenant.mapper.TenantGameQuotaMapper; +import com.ff.tenant.service.ITenantGameQuotaService; +import com.ff.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 租户游戏配额Service业务层处理 + * + * @author shi + * @date 2025-02-12 + */ +@Service +public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { + @Autowired + private TenantGameQuotaMapper tenantGameQuotaMapper; + + /** + * 查询租户游戏配额 + * + * @param id 租户游戏配额主键 + * @return 租户游戏配额 + */ + @Override + public TenantGameQuota selectTenantGameQuotaById(Long id) { + return tenantGameQuotaMapper.selectTenantGameQuotaById(id); + } + + + /** + * 查询租户游戏配额列表 + * + * @param tenantGameQuota 租户游戏配额 + * @return 租户游戏配额 + */ + @Override + public List selectTenantGameQuotaList(TenantGameQuota tenantGameQuota) { + return tenantGameQuotaMapper.selectTenantGameQuotaList(tenantGameQuota); + } + + /** + * 新增租户游戏配额 + * + * @param tenantGameQuota 租户游戏配额 + * @return 结果 + */ + @Override + public int insertTenantGameQuota(TenantGameQuota tenantGameQuota) { + tenantGameQuota.setId(IdUtil.getSnowflakeNextId()); + tenantGameQuota.setCreateTime(DateUtils.getNowDate()); + return tenantGameQuotaMapper.insertTenantGameQuota(tenantGameQuota); + } + + /** + * 修改租户游戏配额 + * + * @param tenantGameQuota 租户游戏配额 + * @return 结果 + */ + @Override + public int updateTenantGameQuota(TenantGameQuota tenantGameQuota) { + tenantGameQuota.setUpdateTime(DateUtils.getNowDate()); + return tenantGameQuotaMapper.updateTenantGameQuota(tenantGameQuota); + } + + /** + * 批量删除租户游戏配额 + * + * @param ids 需要删除的租户游戏配额主键 + * @return 结果 + */ + @Override + public int deleteTenantGameQuotaByIds(Long[] ids) { + return tenantGameQuotaMapper.deleteTenantGameQuotaByIds(ids); + } + + /** + * 删除租户游戏配额信息 + * + * @param id 租户游戏配额主键 + * @return 结果 + */ + @Override + public int deleteTenantGameQuotaById(Long id) { + return tenantGameQuotaMapper.deleteTenantGameQuotaById(id); + } + + + /** + * 按租户密钥选择租户游戏配额 + * + * @param tenantKey 租户密钥 + * @param quotaType 配额类型 + * @return {@link TenantGameQuota } + */ + @Override + public TenantGameQuota selectTenantGameQuotaByTenantKey(String tenantKey, String quotaType) { + TenantGameQuota tenantGameQuota = tenantGameQuotaMapper.selectTenantGameQuotaByTenantKey(tenantKey, quotaType); + + //如果当前钱包不存在 + if (ObjectUtils.isEmpty(tenantGameQuota)) { + tenantGameQuota = TenantGameQuota.builder() + .tenantKey(tenantKey) + .id(IdUtil.getSnowflakeNextId()) + .balance(BigDecimal.ZERO) + .quotaType(quotaType) + .version(0) + .build(); + tenantGameQuotaMapper.insertTenantGameQuota(tenantGameQuota); + } + return tenantGameQuota; + } +} diff --git a/ff-game/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantQuotaExchangeServiceImpl.java similarity index 85% rename from ff-game/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java rename to ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantQuotaExchangeServiceImpl.java index 9cf1743..fa216fc 100644 --- a/ff-game/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java +++ b/ff-bean/ff-domain/src/main/java/com/ff/tenant/service/impl/TenantQuotaExchangeServiceImpl.java @@ -1,14 +1,14 @@ -package com.ff.common.service.impl; - -import java.util.List; +package com.ff.tenant.service.impl; import cn.hutool.core.util.IdUtil; -import com.ff.base.utils.DateUtils; +import com.ff.common.domain.TenantQuotaExchange; +import com.ff.tenant.mapper.TenantQuotaExchangeMapper; +import com.ff.tenant.service.ITenantQuotaExchangeService; +import com.ff.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.common.mapper.TenantQuotaExchangeMapper; -import com.ff.common.domain.TenantQuotaExchange; -import com.ff.common.service.ITenantQuotaExchangeService; + +import java.util.List; /** * 币种汇率Service业务层处理 @@ -17,8 +17,7 @@ import com.ff.common.service.ITenantQuotaExchangeService; * @date 2025-02-21 */ @Service -public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeService -{ +public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeService { @Autowired private TenantQuotaExchangeMapper tenantQuotaExchangeMapper; @@ -29,8 +28,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi * @return 币种汇率 */ @Override - public TenantQuotaExchange selectTenantQuotaExchangeById(Long id) - { + public TenantQuotaExchange selectTenantQuotaExchangeById(Long id) { return tenantQuotaExchangeMapper.selectTenantQuotaExchangeById(id); } @@ -41,8 +39,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi * @return 币种汇率 */ @Override - public List selectTenantQuotaExchangeList(TenantQuotaExchange tenantQuotaExchange) - { + public List selectTenantQuotaExchangeList(TenantQuotaExchange tenantQuotaExchange) { return tenantQuotaExchangeMapper.selectTenantQuotaExchangeList(tenantQuotaExchange); } @@ -65,8 +62,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi * @return 结果 */ @Override - public int insertTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange) - { + public int insertTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange) { tenantQuotaExchange.setId(IdUtil.getSnowflakeNextId()); tenantQuotaExchange.setCreateTime(DateUtils.getNowDate()); return tenantQuotaExchangeMapper.insertTenantQuotaExchange(tenantQuotaExchange); @@ -79,8 +75,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi * @return 结果 */ @Override - public int updateTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange) - { + public int updateTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange) { tenantQuotaExchange.setUpdateTime(DateUtils.getNowDate()); return tenantQuotaExchangeMapper.updateTenantQuotaExchange(tenantQuotaExchange); } @@ -92,8 +87,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi * @return 结果 */ @Override - public int deleteTenantQuotaExchangeByIds(Long[] ids) - { + public int deleteTenantQuotaExchangeByIds(Long[] ids) { return tenantQuotaExchangeMapper.deleteTenantQuotaExchangeByIds(ids); } @@ -104,8 +98,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi * @return 结果 */ @Override - public int deleteTenantQuotaExchangeById(Long id) - { + public int deleteTenantQuotaExchangeById(Long id) { return tenantQuotaExchangeMapper.deleteTenantQuotaExchangeById(id); } } diff --git a/ff-bean/ff-exception/pom.xml b/ff-bean/ff-exception/pom.xml new file mode 100644 index 0000000..313f794 --- /dev/null +++ b/ff-bean/ff-exception/pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + ff-exception + 0.0.1 + ff-exception + jar + + + + + + org.projectlombok + lombok + provided + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + ff-exception + + + diff --git a/ff-bean/ff-exception/src/main/java/com/ff/exception/ApiException.java b/ff-bean/ff-exception/src/main/java/com/ff/exception/ApiException.java new file mode 100644 index 0000000..1b6f286 --- /dev/null +++ b/ff-bean/ff-exception/src/main/java/com/ff/exception/ApiException.java @@ -0,0 +1,67 @@ +package com.ff.exception; + +import com.ff.base.enums.ErrorCode; +import lombok.Getter; +import org.springframework.lang.Nullable; + +/** + * 基础异常 + * + * @author ff + */ +@Getter +public class ApiException extends RuntimeException { + private static final long serialVersionUID = 1L; + + + /** + * 错误码 + */ + private Integer code; + + + /** + * 错误消息 + */ + private String message; + + public ApiException(Integer code, String message) { + this.code = code; + this.message = message; + } + public ApiException(Integer code) { + this.code = code; + this.message = ErrorCode.findByCode(code); + } + + @Override + public String getMessage() { + return message; + } + + /** + * 非空 + * + * @param object 对象 + * @param code 代码 + */ + public static void notNull(@Nullable Object object, Integer code) { + if (object == null) { + throw new ApiException(code); + } + } + + + /** + * 是真 + * + * @param bool 布尔 + * @param code 代码 + */ + public static void isTrue(@Nullable Boolean bool, Integer code) { + if (Boolean.FALSE.equals(bool)) { + throw new ApiException(code); + } + } + +} diff --git a/ff-bean/ff-exception/src/main/java/com/ff/exception/BaseException.java b/ff-bean/ff-exception/src/main/java/com/ff/exception/BaseException.java new file mode 100644 index 0000000..5e0dcfc --- /dev/null +++ b/ff-bean/ff-exception/src/main/java/com/ff/exception/BaseException.java @@ -0,0 +1,97 @@ +package com.ff.exception; + +import com.ff.base.utils.MessageUtils; +import com.ff.base.utils.StringUtils; + +/** + * 基础异常 + * + * @author ff + */ +public class BaseException extends RuntimeException +{ + private static final long serialVersionUID = 1L; + + /** + * 所属模块 + */ + private String module; + + /** + * 错误码 + */ + private String code; + + /** + * 错误码对应的参数 + */ + private Object[] args; + + /** + * 错误消息 + */ + private String defaultMessage; + + public BaseException(String module, String code, Object[] args, String defaultMessage) + { + this.module = module; + this.code = code; + this.args = args; + this.defaultMessage = defaultMessage; + } + + public BaseException(String module, String code, Object[] args) + { + this(module, code, args, null); + } + + public BaseException(String module, String defaultMessage) + { + this(module, null, null, defaultMessage); + } + + public BaseException(String code, Object[] args) + { + this(null, code, args, null); + } + + public BaseException(String defaultMessage) + { + this(null, null, null, defaultMessage); + } + + @Override + public String getMessage() + { + String message = null; + if (!StringUtils.isEmpty(code)) + { + message = MessageUtils.message(code, args); + } + if (message == null) + { + message = defaultMessage; + } + return message; + } + + public String getModule() + { + return module; + } + + public String getCode() + { + return code; + } + + public Object[] getArgs() + { + return args; + } + + public String getDefaultMessage() + { + return defaultMessage; + } +} diff --git a/ff-bean/ff-util/pom.xml b/ff-bean/ff-util/pom.xml new file mode 100644 index 0000000..cfd3351 --- /dev/null +++ b/ff-bean/ff-util/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + ff-util + 0.0.1 + ff-util + jar + + + + + + cn.hutool + hutool-core + + + + org.projectlombok + lombok + provided + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + ff-util + + + diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/AdjustTimestampByMinuteOffset.java b/ff-bean/ff-util/src/main/java/com/ff/utils/AdjustTimestampByMinuteOffset.java new file mode 100644 index 0000000..fad2f47 --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/AdjustTimestampByMinuteOffset.java @@ -0,0 +1,12 @@ +package com.ff.utils; + +/** + * @author cengy + */ +public class AdjustTimestampByMinuteOffset { + + public static long get(long timestampMillis, int minuteOffset) { + // 将分钟转换为毫秒,并加到时间戳上 + return timestampMillis + minuteOffset * 60 * 1000L; + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/CalculateDateDaysAgo.java b/ff-bean/ff-util/src/main/java/com/ff/utils/CalculateDateDaysAgo.java new file mode 100644 index 0000000..dc5363b --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/CalculateDateDaysAgo.java @@ -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); + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/CurrentMillis.java b/ff-bean/ff-util/src/main/java/com/ff/utils/CurrentMillis.java new file mode 100644 index 0000000..1689b56 --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/CurrentMillis.java @@ -0,0 +1,13 @@ +package com.ff.utils; + +import java.time.Instant; + +/** + * @author cengy + */ +public class CurrentMillis { + + public static Long get() { + return Instant.now().toEpochMilli(); + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/DateUtils.java b/ff-bean/ff-util/src/main/java/com/ff/utils/DateUtils.java new file mode 100644 index 0000000..f64d7fc --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/DateUtils.java @@ -0,0 +1,946 @@ +package com.ff.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; + +import java.lang.management.ManagementFactory; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.*; +import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + + +/** + * 时间工具类 + * + * @author ff + */ +public class DateUtils extends org.apache.commons.lang3.time.DateUtils { + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + public static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + public static String HHMMSS = "HH:mm:ss"; + + public static String DAY_START_TIME = "00:00:00"; + + public static String DAY_END_TIME = "23:59:59"; + + public static final String ISO_8601_FORMAT= "yyyy-MM-dd'T'HH:mm:ss"; + + + + public static final String ISO_8601_FORMAT_Z= "yyyy-MM-dd'T'HH:mm:ss'Z'"; + + + /** + * 获取当前Date型日期 + * + * @return Date() 当前日期 + */ + public static Long getNowDate() { + return Instant.now().toEpochMilli(); + } + + + /** + * 获取当前日期 + * + * @return {@link Long } + */ + public static Date getCurrentDate() { + return new Date(); + } + + /** + * 获取当前日期, 默认格式为yyyy-MM-dd + * + * @return String + */ + public static String getDate() { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) { + return new SimpleDateFormat(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) { + try { + return new SimpleDateFormat(format).parse(ts); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * 日期路径 即年/月/日 如2018/08/08 + */ + public static final String datePath() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** + * 日期路径 即年/月/日 如20180808 + */ + public static final String dateTime() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** + * 日期型字符串转化为日期 格式 + */ + public static Date parseDate(Object str) { + if (str == null) { + return null; + } + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException e) { + return null; + } + } + + /** + * 获取服务器启动时间 + */ + public static Date getServerStartDate() { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** + * 计算相差天数 + */ + public static int differentDaysByMillisecond(Date date1, Date date2) { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + /** + * 计算时间差 + * + * @param endDate 最后时间 + * @param startTime 开始时间 + * @return 时间差(天/小时/分钟) + */ + public static String timeDistance(Date endDate, Date startTime) { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 获得两个时间的毫秒时间差异 + long diff = endDate.getTime() - startTime.getTime(); + // 计算差多少天 + long day = diff / nd; + // 计算差多少小时 + long hour = diff % nd / nh; + // 计算差多少分钟 + long min = diff % nd % nh / nm; + // 计算差多少秒//输出结果 + // long sec = diff % nd % nh % nm / ns; + return day + "天" + hour + "小时" + min + "分钟"; + } + + /** + * 增加 LocalDateTime ==> Date + */ + public static Date toDate(LocalDateTime temporalAccessor) { + ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + /** + * 获取格式化日期yymmd + * + * @return {@link String } + */ + public static String getFormattedDate() { + ZonedDateTime nowUtcMinus4 = ZonedDateTime.now(ZoneId.of("UTC-4")); + + String year = String.format("%02d", nowUtcMinus4.getYear() % 100); + String month = String.format("%02d", nowUtcMinus4.getMonthValue()); + String day = String.valueOf(nowUtcMinus4.getDayOfMonth()); + + return year + month + day; + } + + /** + * 将日期格式化为gmt4 + * + * @param date 日期 + * @return {@link String } + */ + public static String formatDateToGMT4(Date date) { + // 将 Date 转换为 ZonedDateTime + ZonedDateTime zdt = ZonedDateTime.ofInstant(date.toInstant(), ZoneId.of("GMT-4")); + // 定义日期时间格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"); + // 格式化并返回字符串 + return zdt.format(formatter); + } + + /** + * 将时间戳转换为指定格式的时间字符串 + * + * @param timestamp 时间戳(毫秒) + * @param format 目标时间格式,例如:yyyy-MM-dd'T'HH:mm:ssXXX + * @param timeZone 时区,例如:GMT+8,UTC等 + * @return 格式化后的时间字符串 + */ + public static String convertTimestampToFormattedDate(long timestamp, String format, String timeZone) { + // 创建日期格式化对象 + SimpleDateFormat sdf = new SimpleDateFormat(format); + + // 设置时区为GMT+8 + sdf.setTimeZone(TimeZone.getTimeZone(timeZone)); + + // 转换为 Date 对象 + Date date = new Date(timestamp); + + // 返回格式化后的时间字符串 + return sdf.format(date); + } + + /** + * 将毫秒时间戳转换为指定时区的时间,并按指定格式输出 + * + * @param timestampInMillis 毫秒级时间戳 + * @param timeZone 时区(例如:America/New_York) + * @param format 时间格式(例如:yyyy-MM-dd HH:mm:ss) + * @return 格式化后的时间字符串 + */ + public static String convertTimeZone(long timestampInMillis, String timeZone, String format) { + // 将毫秒时间戳转换为 Instant + Instant instant = Instant.ofEpochMilli(timestampInMillis); + + // 将 UTC 时间转换为指定时区的时间 + ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of(timeZone)); + + // 格式化输出为指定格式的时间字符串 + return zonedDateTime.format(DateTimeFormatter.ofPattern(format)); + } + + + + /** + * 增加 LocalDate ==> Date + */ + public static Date toDate(LocalDate temporalAccessor) { + LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); + ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); + return Date.from(zdt.toInstant()); + } + + + /** + * 给定毫秒级时间戳,增加或扣除指定分钟 + * + * @param timestampMillis 初始时间戳(毫秒级) + * @param minutes 要增加或扣除的分钟数(正值为增加,负值为扣除) + * @return long 结果时间戳(毫秒级) + */ + public static long addOrSubtractMinutes(long timestampMillis, int minutes) { + // 将分钟转换为毫秒,并加到时间戳上 + return timestampMillis + minutes * 60 * 1000L; + } + + /** + * 加或减一天 + * + * @param timestampDay 时间戳日期 + * @param day 白天 + * @return long + */ + public static long addOrSubtractDay(long timestampDay, int day) { + // 将分钟转换为毫秒,并加到时间戳上 + return timestampDay + day * 60 * 1000L * 60 * 24; + } + + + /** + * 获取给定日期 + * + * @return 不带时区的给定日期的起始时间戳(毫秒) + */ + public static Long getDayStart(Calendar calendar) { + // 设置时间为当天的 00:00:00 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTimeInMillis(); + } + + /** + * 获取指定时间戳指定时区的一天的开始时间 + * + * @param timestamp 时间戳 + * @param timeZoneId 时区 + * @return 时间戳 + */ + public static Long getDayStart(long timestamp, String timeZoneId) { + ZoneId zoneId = ZoneId.of(timeZoneId); + ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneId); + LocalDate localDate = zonedDateTime.toLocalDate(); + LocalDateTime startOfDay = localDate.atStartOfDay(); + ZonedDateTime startOfDayZoned = startOfDay.atZone(zoneId); + return startOfDayZoned.toInstant().toEpochMilli(); + } + + /** + * 获取给定日期 + * + * @return 不带时区的给定日期的结束时间戳(毫秒) + */ + public static Long getDayEnd(Calendar calendar) { + // 设置时间为当天的 23:59:59 + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTimeInMillis(); + } + + /** + * 获取指定时间戳指定时区的一天的结束时间 + * + * @param timestamp 时间戳 + * @param timeZoneId 时区 + * @return 时间戳 + */ + public static Long getDayEnd(long timestamp, String timeZoneId) { + ZoneId zoneId = ZoneId.of(timeZoneId); + ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneId); + LocalDate localDate = zonedDateTime.toLocalDate(); + LocalDateTime endOfDay = localDate.atTime(23, 59, 59, 999999999); + ZonedDateTime endOfDayZoned = endOfDay.atZone(zoneId); + return endOfDayZoned.toInstant().toEpochMilli(); + } + + /** + * 获取昨天的开始时间(不带时区) + * + * @return 时间戳 + */ + public static Long getYesterdayStart() { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + // 回溯一天 + calendar.add(Calendar.DAY_OF_MONTH, -1); + // 设置时间为当天的 00:00:00 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTimeInMillis(); + } + + /** + * 获取昨天的结束时间(不带时区) + * + * @return 时间戳 + */ + public static Long getYesterdayEnd() { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + // 回溯一天 + calendar.add(Calendar.DAY_OF_MONTH, -1); + // 设置时间为当天的 23:59:59 + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTimeInMillis(); + } + + /** + * 获取上周的开始时间(不带时区) + * + * @return 时间戳 + */ + public static Long getLastWeekBegin() { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + // 计算上周的起始日期(周一) + calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + calendar.add(Calendar.WEEK_OF_YEAR, -1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTimeInMillis(); + } + + + /** + * 获取上周的结束时间(不带时区) + * + * @return 时间戳 + */ + public static Long getLastWeekEnd() { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + // 计算上周的结束日期(周日) + calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTimeInMillis(); + } + + /** + * 获取一周的开始时间 + * + * @return 时间戳 + */ + public static Long getWeekBegin(Calendar calendar) { + // 设置一周的第一天为星期一 + calendar.setFirstDayOfWeek(Calendar.MONDAY); + // 获取当前日期在本周的位置 + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + // 计算需要回溯的天数 + int daysToSubtract = (dayOfWeek == Calendar.SUNDAY ? 6 : dayOfWeek - 2); + calendar.add(Calendar.DAY_OF_MONTH, -daysToSubtract); + // 设置时间为当天的 00:00:00 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTimeInMillis(); + } + + /** + * 获取一周的结束时间 + * + * @return 时间戳 + */ + public static Long getWeekEnd(Calendar calendar) { + // 设置一周的第一天为星期一 + calendar.setFirstDayOfWeek(Calendar.MONDAY); + // 获取当前日期在本周的位置 + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + // 计算需要前进的天数 + int daysToAdd = (dayOfWeek == Calendar.SUNDAY ? 0 : 7 - (dayOfWeek - 1)); + calendar.add(Calendar.DAY_OF_MONTH, daysToAdd); + // 设置时间为当天的 23:59:59 + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTimeInMillis(); + } + + /** + * 获取当前月份的开始时间 + * + * @return 时间戳 + */ + public static Long getMonthStart(Calendar calendar) { + // 设置时间为当月的第一天 + calendar.set(Calendar.DAY_OF_MONTH, 1); + // 设置时间为当天的 00:00:00 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTimeInMillis(); + } + + /** + * 获取当前月份的结束时间(不带时区) + * + * @return 时间戳 + */ + public static Long getMonthEnd(Calendar calendar) { + // 设置时间为当月的最后一天 + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + // 设置时间为当天的 23:59:59 + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTimeInMillis(); + } + + /** + * 获取上个月的开始时间(不带时区) + * + * @return 时间戳 + */ + public static Long getLastMonthStart() { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + // 计算上个月的起始日期(1号) + calendar.add(Calendar.MONTH, -1); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTimeInMillis(); + } + + /** + * 获取上个月的结束时间(不带时区) + * + * @return 时间戳 + */ + public static Long getLastMonthEnd() { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + calendar.add(Calendar.MONTH, -1); // 回退一个月 + + // 计算上个月的结束日期(最后一天) + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 设置日期为当月最后一天 + calendar.set(Calendar.HOUR_OF_DAY, 23); // 设置小时为23 + calendar.set(Calendar.MINUTE, 59); // 设置分钟为59 + calendar.set(Calendar.SECOND, 59); // 设置秒为59 + calendar.set(Calendar.MILLISECOND, 999); // 设置毫秒为999 + return calendar.getTimeInMillis(); + } + + + /** + * 判断时间戳 A 距离时间戳 B 近还是距离时间戳 C 近 + * + * @param timestampA 时间戳 A + * @param timestampB 时间戳 B + * @param timestampC 时间戳 C + * @return 返回 true 表示时间戳 A 更接近时间戳 B,返回 false 表示时间戳 A 更接近时间戳 C + */ + public static boolean isCloserToB(long timestampA, long timestampB, long timestampC) { + long diffAB = Math.abs(timestampA - timestampB); + long diffAC = Math.abs(timestampA - timestampC); + return diffAB < diffAC; + } + + + /** + * 获取指定时间戳次日指定时区指定时间的时间戳 + * + * @param utcTimestamp utc时间戳 + * @param date 具体时间 + * @param timeZonId 指定时区 + * @return 只改变时区 不改变具体日期的时间戳 + */ + public static long getTomorrowTimeByZonId(long utcTimestamp, Date date, String timeZonId) { + SimpleDateFormat sdf = new SimpleDateFormat(HHMMSS); + String format = sdf.format(date); + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(HHMMSS); + LocalTime localTime = LocalTime.parse(format, timeFormatter); + // 将时间戳转换为 Instant + Instant instant = Instant.ofEpochMilli(addOrSubtractDay(utcTimestamp, 1)); + ZoneId zoneId = ZoneId.of(timeZonId); + LocalDate localDate = instant.atZone(zoneId).toLocalDate(); + LocalDateTime tomorrowDrawStartTime = localDate.atTime(localTime); + return tomorrowDrawStartTime.atZone(zoneId).toInstant().toEpochMilli(); + } + + + /** + * 指定时区并具体时间的的实时时间戳 + * + * @param date 具体时间 + * @param timeZonId 时区 + * @return 只改变时区 不改变具体日期的时间戳 + */ + public static long getTodayTimeByZonId(Date date, String timeZonId) { + // 获取今日指定时间后的时间戳 + SimpleDateFormat sdf = new SimpleDateFormat(HHMMSS); + String format = sdf.format(date); + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(HHMMSS); + LocalTime localTime = LocalTime.parse(format, timeFormatter); + LocalDate currentDate = LocalDate.now(); + LocalDateTime todayDrawStartTime = currentDate.atTime(localTime); + ZoneId zoneId = ZoneId.of(timeZonId); + return todayDrawStartTime.atZone(zoneId).toInstant().toEpochMilli(); + } + + /** + * 获取下周指定周几的几点的指定时区时间戳 + * + * @param dayOfWeek 周几,1-7表示周一到周日 + * @param date 具体时间,Date对象 + * @return UTC时间戳(毫秒) + */ + public static long getNextWeekTimestamp(int dayOfWeek, Date date, ZoneId zoneId) { + // 将Date对象转换为LocalDateTime对象 + SimpleDateFormat sdf = new SimpleDateFormat(HHMMSS); + String format = sdf.format(date); + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(HHMMSS); + LocalTime localTime = LocalTime.parse(format, timeFormatter); + // 获取当前日期时间 + ZonedDateTime now = ZonedDateTime.now(zoneId); + // 找到本周的周几 + ZonedDateTime startOfWeek = now.with(dayOfWeek < now.getDayOfWeek().getValue() ? TemporalAdjusters.previousOrSame(DayOfWeek.of(dayOfWeek)) : TemporalAdjusters.nextOrSame(DayOfWeek.of(dayOfWeek))); + + // 加上一个完整的星期,得到下周的周几 + ZonedDateTime nextWeekStart = startOfWeek.plusWeeks(1); + + // 设置指定的时间 + ZonedDateTime targetDateTime = nextWeekStart.withHour(localTime.getHour()).withMinute(localTime.getMinute()).withSecond(localTime.getSecond()).withNano(0); + + // 转换为时间戳(毫秒) + return targetDateTime.toInstant().toEpochMilli(); + } + + /** + * 获取指定时区当前周指定周几的几点的时间戳 + * + * @param dayOfWeek 周几,1-7表示周一到周日 + * @param date 具体时间,Date对象 + * @return 时间戳(毫秒) + */ + public static long getCurrentWeekTimestamp(int dayOfWeek, Date date, ZoneId zoneId) { + // 将Date对象转换为LocalDateTime对象 + SimpleDateFormat sdf = new SimpleDateFormat(HHMMSS); + String format = sdf.format(date); + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(HHMMSS); + LocalTime localTime = LocalTime.parse(format, timeFormatter); + + // 获取当前日期时间 + LocalDateTime now = LocalDateTime.now(); + + // 获取当前周的指定周几的日期时间 + LocalDateTime currentWeekDateTime = now.with(dayOfWeek < now.getDayOfWeek().getValue() ? TemporalAdjusters.previousOrSame(DayOfWeek.of(dayOfWeek)) : TemporalAdjusters.nextOrSame(DayOfWeek.of(dayOfWeek))) + .withHour(localTime.getHour()) + .withMinute(localTime.getMinute()) + .withSecond(localTime.getSecond()) + .withNano(0); + + // 将LocalDateTime转换为ZonedDateTime,使用UTC时区 + ZonedDateTime zonedDateTime = currentWeekDateTime.atZone(zoneId); + + // 将ZonedDateTime转换为时间戳(毫秒) + return zonedDateTime.toInstant().toEpochMilli(); + } + + /** + * 获取下月指定日的几点的时间戳 + * + * @param dayOfMonth 指定日,1-31表示 + * @param date 具体时间,Date对象 + * @param month 下几月 + * @return 时间戳(毫秒) + */ + public static long getNextMonthTimestamp(int dayOfMonth, Date date, ZoneId zoneId, int month) { + // 将Date对象转换为LocalDateTime对象 + SimpleDateFormat sdf = new SimpleDateFormat(HHMMSS); + String format = sdf.format(date); + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(HHMMSS); + LocalTime localTime = LocalTime.parse(format, timeFormatter); + + // 获取当前日期时间 + LocalDateTime now = LocalDateTime.now(); + + // 获取下个月的年份和月份 + YearMonth nextMonth = YearMonth.from(now).plusMonths(month); + int maxDayNum = nextMonth.lengthOfMonth(); + if (dayOfMonth > maxDayNum) { + dayOfMonth = maxDayNum; + } + + // 创建下个月指定日的LocalDateTime对象 + LocalDateTime nextMonthDateTime = LocalDateTime.of(nextMonth.getYear(), nextMonth.getMonth(), dayOfMonth, + localTime.getHour(), localTime.getMinute(), localTime.getSecond(), 0); + + // 将LocalDateTime转换为ZonedDateTime,使用UTC时区 + ZonedDateTime zonedDateTime = nextMonthDateTime.atZone(zoneId); + + // 将ZonedDateTime转换为时间戳(毫秒) + return zonedDateTime.toInstant().toEpochMilli(); + } + + /** + * 获取本月指定日的几点的时间戳 + * + * @param dayOfMonth 指定日,1-31表示 + * @param date 具体时间,Date对象 + * @return 时间戳(毫秒) + */ + public static long getCurrentMonthTimestamp(int dayOfMonth, Date date, ZoneId zoneId) { + // 将Date对象转换为LocalDateTime对象 + SimpleDateFormat sdf = new SimpleDateFormat(HHMMSS); + String format = sdf.format(date); + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(HHMMSS); + LocalTime localTime = LocalTime.parse(format, timeFormatter); + + // 获取当前日期时间 + LocalDateTime now = LocalDateTime.now(); + // 获取本月的年份和月份 + YearMonth currentMonth = YearMonth.from(now); + int maxDayNum = currentMonth.lengthOfMonth(); + if (dayOfMonth > maxDayNum) { + dayOfMonth = maxDayNum; + } + + // 创建本月指定日的LocalDateTime对象 + LocalDateTime currentMonthDateTime = LocalDateTime.of(currentMonth.getYear(), currentMonth.getMonth(), dayOfMonth, + localTime.getHour(), localTime.getMinute(), localTime.getSecond(), 0); + + // 将LocalDateTime转换为ZonedDateTime,使用UTC时区 + ZonedDateTime zonedDateTime = currentMonthDateTime.atZone(zoneId); + + // 将ZonedDateTime转换为时间戳(毫秒) + return zonedDateTime.toInstant().toEpochMilli(); + } + + + /** + * 将时间戳转换为UTC0时区的时间戳 + * + * @param timeZoneId 时区id + * @param timestamp 时间戳 + * @return UTC0时区的时间戳 + */ + public static long covertToUTCtimestamp(String timeZoneId, long timestamp) { + // 将时间戳转换为 Instant 对象 + Instant instant = Instant.ofEpochMilli(timestamp); + + // 使用指定的时区将 Instant 对象转换为 ZonedDateTime 对象 + ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of(timeZoneId)); + ZonedDateTime zonedDateTime1 = zonedDateTime.withZoneSameLocal(ZoneOffset.UTC); + // 将 ZonedDateTime 对象转换为 UTC0 时区的 Instant 对象 + + // 获取 UTC0 时区的时间戳(以毫秒为单位) + return zonedDateTime1.toInstant().toEpochMilli(); + } + + /** + * 将UTC时间戳转换为指定时区的时间戳 + * + * @param timeZoneId 时区id + * @param timestamp 时间戳 + * @return 指定时区的时间戳 + */ + public static long covertUTCTotimeZonetimestamp(String timeZoneId, long timestamp) { + // 将时间戳转换为 Instant 对象 + Instant instant = Instant.ofEpochMilli(timestamp); + + // 使用指定的时区将 Instant 对象转换为 ZonedDateTime 对象 + ZonedDateTime zonedDateTime = instant.atZone(ZoneOffset.UTC); + ZonedDateTime zonedDateTime1 = zonedDateTime.withZoneSameLocal(ZoneId.of(timeZoneId)); + // 获取 指定 时区的时间戳(以毫秒为单位) + return zonedDateTime1.toInstant().toEpochMilli(); + } + + /** + * 判断是否是指定时区的当天的0点 + * + * @param timestamp + * @param timeZone + * @return + */ + public static boolean isMidnight(long timestamp, TimeZone timeZone) { + Calendar calendar = Calendar.getInstance(timeZone); + calendar.setTimeInMillis(timestamp); + + return calendar.get(Calendar.HOUR_OF_DAY) == 0 && + calendar.get(Calendar.MINUTE) == 0 && + calendar.get(Calendar.SECOND) == 0 && + calendar.get(Calendar.MILLISECOND) == 0; + } + + /** + * 判断是否是指定时区的周一的0点 + * + * @param timestamp 时间戳 + * @param timeZone 指定时区 + * @return 是否是周一的0点 + */ + public static boolean isMondayMidnight(long timestamp, TimeZone timeZone) { + Calendar calendar = Calendar.getInstance(timeZone); + calendar.setTimeInMillis(timestamp); + + return isMidnight(timestamp, timeZone) && calendar.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY; + } + + /** + * 将 ISO 8601 格式的时间字符串转换为毫秒时间戳 + * + * @param isoDate ISO 8601 格式的时间字符串,例如 "2025-05-10T08:23:34Z" + * @return 从 Unix epoch 开始的毫秒时间戳 + */ + public static long convertToMilliseconds(String isoDate) { + Instant instant = Instant.parse(isoDate); + return instant.toEpochMilli(); + } + + + /** + * 将 ZoneId 转换为 TimeZone + * + * @param zoneId 要转换的 ZoneId + * @return 对应的 TimeZone + */ + public static TimeZone zoneIdToTimeZone(ZoneId zoneId) { + return TimeZone.getTimeZone(zoneId.getId()); + } + + /** + * 获取指定星期几的开始和结束UTC时间戳 + * + * @param dayOfWeek 星期几,1-7,1表示星期一,7表示星期日 + * @return 包含开始和结束UTC时间戳的数组,第一个元素是开始时间戳,第二个元素是结束时间戳 + */ + public static Map getStartAndEndUTCTimestampOfDayOfWeek(int dayOfWeek) { + if (dayOfWeek < 1 || dayOfWeek > 7) { + throw new IllegalArgumentException("dayOfWeek must be between 1 and 7"); + } + + // 获取当前日期 + LocalDate today = LocalDate.now(ZoneOffset.UTC); + // 计算本周的开始日期(星期一) + LocalDate monday = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); + // 计算指定星期几的日期 + LocalDate targetDay = monday.plusDays(dayOfWeek - 1); + + // 计算指定星期几的开始时间(00:00:00 UTC) + ZonedDateTime startOfDay = targetDay.atStartOfDay(ZoneOffset.UTC); + // 计算指定星期几的结束时间(23:59:59 UTC) + ZonedDateTime endOfDay = targetDay.atTime(LocalTime.MAX).atZone(ZoneOffset.UTC); + + // 获取开始和结束时间戳 + long startTimestamp = startOfDay.toInstant().toEpochMilli(); + long endTimestamp = endOfDay.toInstant().toEpochMilli(); + + Map map = new HashMap<>(); + map.put("beginTime", startTimestamp); + map.put("endTime", endTimestamp); + return map; + } + + /** + * 获取本月指定月几号的开始和结束UTC时间戳 + * + * @param dayOfMonth 本月几号,1-31 + * @return 包含开始和结束UTC时间戳的Map,键分别为"beginTime"和"endTime" + */ + public static Map getStartAndEndUTCTimestampOfDayOfMonth(int dayOfMonth) { + // 获取当前日期 + LocalDate today = LocalDate.now(ZoneOffset.UTC); + // 获取本月的年份和月份 + YearMonth currentMonth = YearMonth.from(today); + int maxDayNum = currentMonth.lengthOfMonth(); + if (dayOfMonth > maxDayNum) { + dayOfMonth = maxDayNum; + } + // 获取当前年份和月份 + int year = today.getYear(); + int month = today.getMonthValue(); + + // 构建指定月几号的日期 + LocalDate targetDay; + try { + targetDay = LocalDate.of(year, month, dayOfMonth); + } catch (DateTimeException e) { + throw new IllegalArgumentException("Invalid dayOfMonth for the current month", e); + } + + // 计算指定月几号的开始时间(00:00:00 UTC) + ZonedDateTime startOfDay = targetDay.atStartOfDay(ZoneOffset.UTC); + // 计算指定月几号的结束时间(23:59:59 UTC) + ZonedDateTime endOfDay = targetDay.atTime(LocalTime.MAX).atZone(ZoneOffset.UTC); + + // 获取开始和结束时间戳 + long startTimestamp = startOfDay.toInstant().toEpochMilli(); + long endTimestamp = endOfDay.toInstant().toEpochMilli(); + + Map map = new HashMap<>(); + map.put("beginTime", startTimestamp); + map.put("endTime", endTimestamp); + return map; + } + + /** + * 判断两个毫秒级时间戳是否为同一天 + * + * @param timestamp1 第一个时间戳 + * @param timestamp2 第二个时间戳 + * @return 如果两个时间戳属于同一天,返回true;否则返回false + */ + public static boolean isSameDay(long timestamp1, long timestamp2) { + // 将时间戳转换为 LocalDate + LocalDate date1 = Instant.ofEpochMilli(timestamp1) + .atZone(ZoneId.systemDefault()) // 使用系统默认时区 + .toLocalDate(); + + LocalDate date2 = Instant.ofEpochMilli(timestamp2) + .atZone(ZoneId.systemDefault()) // 使用系统默认时区 + .toLocalDate(); + + // 比较日期部分是否相同 + return date1.isEqual(date2); + } + + /** + * 获取 UTC 时区的当前日期,并返回 java.util.Date 类型 + * + * @return java.util.Date 对象,表示 UTC 时区的当前日期 + */ + public static Date getUTCDate() { + // 获取 UTC 时区的当前时间 + ZonedDateTime utcTime = ZonedDateTime.now(ZoneId.of("UTC")); + + // 提取 UTC 时区的日期部分 + ZonedDateTime utcDateTime = utcTime.toLocalDate().atStartOfDay(ZoneId.of("UTC")); + + // 将 ZonedDateTime 转换为 java.util.Date + return Date.from(utcDateTime.toInstant()); + } + + /** + * 将 LocalTime 转换为 Date + * + * @param localTime LocalTime对象 + * @return Date对象 + */ + public static Date convertToDate(LocalTime localTime) { + // 使用当前日期作为参考日期 + LocalDate today = LocalDate.now(); + + // 将 LocalTime 和 LocalDate 结合成 LocalDateTime + LocalDateTime localDateTime = LocalDateTime.of(today, localTime); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String format = localDateTime.format(formatter); + // 将 LocalDateTime 转换为 Date + return DateUtils.parseDate(format); + } + + /** + * 判断是否在指定时间段内 + * + * @param value 要判断的时间戳 + * @param minValue 开始时间戳 + * @param maxValue 结束时间戳 + * @return 是否在指定时间段内 + */ + public static boolean isBetween(Long value, Long minValue, Long maxValue) { + return value >= minValue && value <= maxValue; + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/IdUtils.java b/ff-bean/ff-util/src/main/java/com/ff/utils/IdUtils.java new file mode 100644 index 0000000..fdc769a --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/IdUtils.java @@ -0,0 +1,46 @@ +package com.ff.utils; + +import cn.hutool.core.lang.UUID; + +/** + * ID生成器工具类 + * + * @author ff + */ +public class IdUtils { + /** + * 获取随机UUID + * + * @return 随机UUID + */ + public static String randomUUID() { + return UUID.randomUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线 + * + * @return 简化的UUID,去掉了横线 + */ + public static String simpleUUID() { + return UUID.randomUUID().toString(true); + } + + /** + * 获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID + * + * @return 随机UUID + */ + public static String fastUUID() { + return UUID.fastUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID + * + * @return 简化的UUID,去掉了横线 + */ + public static String fastSimpleUUID() { + return UUID.fastUUID().toString(true); + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/Md5Utils.java b/ff-bean/ff-util/src/main/java/com/ff/utils/Md5Utils.java new file mode 100644 index 0000000..d05552f --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/Md5Utils.java @@ -0,0 +1,36 @@ +package com.ff.utils; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * @author cengy + */ +public class Md5Utils { + + public static String md5New(String input) { + try { + // 创建 MD5 消息摘要对象 + MessageDigest md = MessageDigest.getInstance("MD5"); + // 更新输入数据 + md.update(input.getBytes()); + // 获取 MD5 哈希值 + byte[] hashBytes = md.digest(); + + // 将字节数组转为十六进制字符串 + StringBuilder hexString = new StringBuilder(); + for (byte b : hashBytes) { + // 将每个字节转换为两位十六进制数字 + String hex = Integer.toHexString(0xFF & b); + if (hex.length() == 1) { + hexString.append('0'); // 保证是两位 + } + hexString.append(hex); + } + + return hexString.toString(); + } catch (NoSuchAlgorithmException e) { + return null; // 或者抛出异常 + } + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/SortByAttributeNameASC.java b/ff-bean/ff-util/src/main/java/com/ff/utils/SortByAttributeNameASC.java new file mode 100644 index 0000000..6e351b1 --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/SortByAttributeNameASC.java @@ -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 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); + } + +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/StringUtils.java b/ff-bean/ff-util/src/main/java/com/ff/utils/StringUtils.java new file mode 100644 index 0000000..ac9b9cb --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/StringUtils.java @@ -0,0 +1,657 @@ +package com.ff.utils; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.*; + +/** + * 字符串工具类 + * + * @author ff + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils { + /** + * 空字符串 + */ + private static final String NULLSTR = ""; + + /** + * 下划线 + */ + private static final char SEPARATOR = '_'; + + /** + * 星号 + */ + private static final char ASTERISK = '*'; + + /** + * 获取参数不为空值 + * + * @param value defaultValue 要判断的value + * @return value 返回值 + */ + public static T nvl(T value, T defaultValue) { + return value != null ? value : defaultValue; + } + + /** + * * 判断一个Collection是否为空, 包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Collection coll) { + return isNull(coll) || coll.isEmpty(); + } + + /** + * * 判断一个Collection是否非空,包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Collection coll) { + return !isEmpty(coll); + } + + /** + * * 判断一个对象数组是否为空 + * + * @param objects 要判断的对象数组 + * * @return true:为空 false:非空 + */ + public static boolean isEmpty(Object[] objects) { + return isNull(objects) || (objects.length == 0); + } + + /** + * * 判断一个对象数组是否非空 + * + * @param objects 要判断的对象数组 + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Object[] objects) { + return !isEmpty(objects); + } + + /** + * * 判断一个Map是否为空 + * + * @param map 要判断的Map + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Map map) { + return isNull(map) || map.isEmpty(); + } + + /** + * * 判断一个Map是否为空 + * + * @param map 要判断的Map + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Map map) { + return !isEmpty(map); + } + + /** + * * 判断一个字符串是否为空串 + * + * @param str String + * @return true:为空 false:非空 + */ + public static boolean isEmpty(String str) { + return isNull(str) || NULLSTR.equals(str.trim()); + } + + /** + * * 判断一个字符串是否为非空串 + * + * @param str String + * @return true:非空串 false:空串 + */ + public static boolean isNotEmpty(String str) { + return !isEmpty(str); + } + + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) { + return object == null; + } + + /** + * * 判断一个对象是否非空 + * + * @param object Object + * @return true:非空 false:空 + */ + public static boolean isNotNull(Object object) { + return !isNull(object); + } + + /** + * * 判断一个对象是否是数组类型(Java基本型别的数组) + * + * @param object 对象 + * @return true:是数组 false:不是数组 + */ + public static boolean isArray(Object object) { + return isNotNull(object) && object.getClass().isArray(); + } + + /** + * 去空格 + */ + public static String trim(String str) { + return (str == null ? "" : str.trim()); + } + + /** + * 替换指定字符串的指定区间内字符为"*" + * + * @param str 字符串 + * @param startInclude 开始位置(包含) + * @param endExclude 结束位置(不包含) + * @return 替换后的字符串 + */ + public static String hide(CharSequence str, int startInclude, int endExclude) { + if (isEmpty(str)) { + return NULLSTR; + } + final int strLength = str.length(); + if (startInclude > strLength) { + return NULLSTR; + } + if (endExclude > strLength) { + endExclude = strLength; + } + if (startInclude > endExclude) { + // 如果起始位置大于结束位置,不替换 + return NULLSTR; + } + final char[] chars = new char[strLength]; + for (int i = 0; i < strLength; i++) { + if (i >= startInclude && i < endExclude) { + chars[i] = ASTERISK; + } else { + chars[i] = str.charAt(i); + } + } + return new String(chars); + } + + /** + * 截取字符串 + * + * @param str 字符串 + * @param start 开始 + * @return 结果 + */ + public static String substring(final String str, int start) { + if (str == null) { + return NULLSTR; + } + + if (start < 0) { + start = str.length() + start; + } + + if (start < 0) { + start = 0; + } + if (start > str.length()) { + return NULLSTR; + } + + return str.substring(start); + } + + /** + * 截取字符串 + * + * @param str 字符串 + * @param start 开始 + * @param end 结束 + * @return 结果 + */ + public static String substring(final String str, int start, int end) { + if (str == null) { + return NULLSTR; + } + + if (end < 0) { + end = str.length() + end; + } + if (start < 0) { + start = str.length() + start; + } + + if (end > str.length()) { + end = str.length(); + } + + if (start > end) { + return NULLSTR; + } + + if (start < 0) { + start = 0; + } + if (end < 0) { + end = 0; + } + + return str.substring(start, end); + } + + /** + * 判断是否为空,并且不是空白字符 + * + * @param str 要判断的value + * @return 结果 + */ + public static boolean hasText(String str) { + return (str != null && !str.isEmpty() && containsText(str)); + } + + private static boolean containsText(CharSequence str) { + int strLen = str.length(); + for (int i = 0; i < strLen; i++) { + if (!Character.isWhitespace(str.charAt(i))) { + return true; + } + } + return false; + } + +// /** +// * 格式化文本, {} 表示占位符
+// * 此方法只是简单将占位符 {} 按照顺序替换为参数
+// * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
+// * 例:
+// * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
+// * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
+// * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+// * +// * @param template 文本模板,被替换的部分用 {} 表示 +// * @param params 参数值 +// * @return 格式化后的文本 +// */ +// public static String format(String template, Object... params) { +// if (isEmpty(params) || isEmpty(template)) { +// return template; +// } +// return StrFormatter.format(template, params); +// } + +// /** +// * 是否为http(s)://开头 +// * +// * @param link 链接 +// * @return 结果 +// */ +// public static boolean ishttp(String link) { +// return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); +// } + + /** + * 字符串转set + * + * @param str 字符串 + * @param sep 分隔符 + * @return set集合 + */ + public static final Set str2Set(String str, String sep) { + return new HashSet(str2List(str, sep, true, false)); + } + + /** + * 字符串转list + * + * @param str 字符串 + * @param sep 分隔符 + * @param filterBlank 过滤纯空白 + * @param trim 去掉首尾空白 + * @return list集合 + */ + public static final List str2List(String str, String sep, boolean filterBlank, boolean trim) { + List list = new ArrayList(); + if (StringUtils.isEmpty(str)) { + return list; + } + + // 过滤空白字符串 + if (filterBlank && StringUtils.isBlank(str)) { + return list; + } + String[] split = str.split(sep); + for (String string : split) { + if (filterBlank && StringUtils.isBlank(string)) { + continue; + } + if (trim) { + string = string.trim(); + } + list.add(string); + } + + return list; + } + + /** + * 判断给定的collection列表中是否包含数组array 判断给定的数组array中是否包含给定的元素value + * + * @param collection 给定的集合 + * @param array 给定的数组 + * @return boolean 结果 + */ + public static boolean containsAny(Collection collection, String... array) { + if (isEmpty(collection) || isEmpty(array)) { + return false; + } else { + for (String str : array) { + if (collection.contains(str)) { + return true; + } + } + return false; + } + } + + /** + * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 + * + * @param cs 指定字符串 + * @param searchCharSequences 需要检查的字符串数组 + * @return 是否包含任意一个字符串 + */ + public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) { + if (isEmpty(cs) || isEmpty(searchCharSequences)) { + return false; + } + for (CharSequence testStr : searchCharSequences) { + if (containsIgnoreCase(cs, testStr)) { + return true; + } + } + return false; + } + + /** + * 驼峰转下划线命名 + */ + public static String toUnderScoreCase(String str) { + if (str == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + // 前置字符是否大写 + boolean preCharIsUpperCase = true; + // 当前字符是否大写 + boolean curreCharIsUpperCase = true; + // 下一字符是否大写 + boolean nexteCharIsUpperCase = true; + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + if (i > 0) { + preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); + } else { + preCharIsUpperCase = false; + } + + curreCharIsUpperCase = Character.isUpperCase(c); + + if (i < (str.length() - 1)) { + nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); + } + + if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { + sb.append(SEPARATOR); + } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { + sb.append(SEPARATOR); + } + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * 是否包含字符串 + * + * @param str 验证字符串 + * @param strs 字符串组 + * @return 包含返回true + */ + public static boolean inStringIgnoreCase(String str, String... strs) { + if (str != null && strs != null) { + for (String s : strs) { + if (str.equalsIgnoreCase(trim(s))) { + return true; + } + } + } + return false; + } + + /** + * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld + * + * @param name 转换前的下划线大写方式命名的字符串 + * @return 转换后的驼峰式命名的字符串 + */ + public static String convertToCamelCase(String name) { + StringBuilder result = new StringBuilder(); + // 快速检查 + if (name == null || name.isEmpty()) { + // 没必要转换 + return ""; + } else if (!name.contains("_")) { + // 不含下划线,仅将首字母大写 + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + // 用下划线将原始字符串分割 + String[] camels = name.split("_"); + for (String camel : camels) { + // 跳过原始字符串中开头、结尾的下换线或双重下划线 + if (camel.isEmpty()) { + continue; + } + // 首字母大写 + result.append(camel.substring(0, 1).toUpperCase()); + result.append(camel.substring(1).toLowerCase()); + } + return result.toString(); + } + + /** + * 驼峰式命名法 + * 例如:user_name->userName + */ + public static String toCamelCase(String s) { + if (s == null) { + return null; + } + if (s.indexOf(SEPARATOR) == -1) { + return s; + } + s = s.toLowerCase(); + StringBuilder sb = new StringBuilder(s.length()); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + if (c == SEPARATOR) { + upperCase = true; + } else if (upperCase) { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } else { + sb.append(c); + } + } + return sb.toString(); + } + +// /** +// * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 +// * +// * @param str 指定字符串 +// * @param strs 需要检查的字符串数组 +// * @return 是否匹配 +// */ +// public static boolean matches(String str, List strs) { +// if (isEmpty(str) || isEmpty(strs)) { +// return false; +// } +// for (String pattern : strs) { +// if (isMatch(pattern, str)) { +// return true; +// } +// } +// return false; +// } + +// /** +// * 判断url是否与规则配置: +// * ? 表示单个字符; +// * * 表示一层路径内的任意字符串,不可跨层级; +// * ** 表示任意层路径; +// * +// * @param pattern 匹配规则 +// * @param url 需要匹配的url +// * @return +// */ +// public static boolean isMatch(String pattern, String url) { +// AntPathMatcher matcher = new AntPathMatcher(); +// return matcher.match(pattern, url); +// } + + @SuppressWarnings("unchecked") + public static T cast(Object obj) { + return (T) obj; + } + + /** + * 数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符。 + * + * @param num 数字对象 + * @param size 字符串指定长度 + * @return 返回数字的字符串格式,该字符串为指定长度。 + */ + public static final String padl(final Number num, final int size) { + return padl(num.toString(), size, '0'); + } + + /** + * 字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符。 + * + * @param s 原始字符串 + * @param size 字符串指定长度 + * @param c 用于补齐的字符 + * @return 返回指定长度的字符串,由原字符串左补齐或截取得到。 + */ + public static final String padl(final String s, final int size, final char c) { + final StringBuilder sb = new StringBuilder(size); + if (s != null) { + final int len = s.length(); + if (s.length() <= size) { + for (int i = size - len; i > 0; i--) { + sb.append(c); + } + sb.append(s); + } else { + return s.substring(len - size, len); + } + } else { + for (int i = size; i > 0; i--) { + sb.append(c); + } + } + return sb.toString(); + } + + /** + * 加后缀 + * + * @param code 代码 + * @param suffix 后缀 + * @return {@link String } + */ + public static String addSuffix(String code, Object suffix) { + return code +"_"+ suffix; + } + + /** + * 移除字符串中最后一个指定的子字符串 + * + * @param original 原始字符串 + * @return 移除后的字符串 + */ + public static String removeLastOccurrence(String original, String suffix) { + // 查找位置 + if (original.endsWith(suffix)) { + return original.substring(0, original.length() - suffix.length()); + } + return original; + } + /** + * 生成唯一的订单号 + * + * @param prefix 前缀(例如:"PG") + * @param length 订单号中随机部分的总长度(不包括前缀) + * @return 生成的唯一订单号 + */ + public static String generateOrderId(String prefix, int length) { + if (length <= prefix.length()) { + throw new IllegalArgumentException("订单号长度必须大于前缀长度"); + } + + // 获取当前时间戳 + long timestamp = System.currentTimeMillis(); + + // 使用UUID生成一个随机的字符串并去掉 "-" + String randomString = UUID.randomUUID().toString().replace("-", ""); + + // 拼接时间戳和随机字符串 + String source = prefix + timestamp + randomString; + + // 截取指定长度的部分(确保符合需求的长度) + String orderId = getMD5Hash(source).substring(0, length - prefix.length()); + + return prefix + orderId; + } + + /** + * 使用MD5算法生成哈希值 + * + * @param source 输入字符串 + * @return 哈希值 + */ + private static String getMD5Hash(String source) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] digest = md.digest(source.getBytes()); + StringBuilder hexString = new StringBuilder(); + + // 转换为16进制 + for (byte b : digest) { + String hex = Integer.toHexString(0xFF & b); + if (hex.length() == 1) { + hexString.append('0'); + } + hexString.append(hex); + } + return hexString.toString(); // 返回32位MD5哈希 + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/ff-bean/ff-util/src/main/java/com/ff/utils/TimestampFromString.java b/ff-bean/ff-util/src/main/java/com/ff/utils/TimestampFromString.java new file mode 100644 index 0000000..8a3ddd6 --- /dev/null +++ b/ff-bean/ff-util/src/main/java/com/ff/utils/TimestampFromString.java @@ -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); + } +} diff --git a/ff-bean/xk-client/pom.xml b/ff-bean/xk-client/pom.xml new file mode 100644 index 0000000..3123e48 --- /dev/null +++ b/ff-bean/xk-client/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + xk-client + 0.0.1 + xk-client + jar + + + + + + com.ff + ff-domain + + + com.ff + comp-redis + + + + org.projectlombok + lombok + provided + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + xk-client + + + diff --git a/ff-bean/xk-client/src/main/java/com/ff/client/IGamesService.java b/ff-bean/xk-client/src/main/java/com/ff/client/IGamesService.java new file mode 100644 index 0000000..dbe38d9 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/client/IGamesService.java @@ -0,0 +1,153 @@ +package com.ff.client; + +import com.ff.dto.*; + +import java.util.List; + +/** + * 游戏数据解析服务 + * + * @author shi + * @date 2024/10/21 + */ +public interface IGamesService { + + + /** + * 创建成员 + * + * @param createMemberRequestDTO 创建成员请求dto + * @return {@link Boolean } + */ + Boolean createMember(CreateMemberRequestDTO createMemberRequestDTO); + + + /** + * 获取会员信息 + * + * @param memberInfoRequestDTO 会员信息请求dto + * @return {@link MemberInfoResponseDTO } + */ + MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO memberInfoRequestDTO); + + /** + * 无重定向登录 + * + * @param gamesLogin 游戏登录 + * @return {@link String } + */ + String loginWithoutRedirect(GamesLogin gamesLogin); + + + /** + * 获取游戏列表 + * + * @param gamesBaseRequestDTO 游戏请求dto + * @return {@link String } + */ + String getGameList(GamesBaseRequestDTO gamesBaseRequestDTO); + + + /** + * 按代理id进行交换转账 + * + * @param exchangeTransferMoneyRequestDTO 外汇转账moeny dto + * @return {@link Long } + */ + Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO); + + + /** + * 汇兑转移状态确认 + * + * @param exchangeTransferMoneyRequestDTO 兑换转账请求dto + * @return {@link ExchangeTransferStatusResponseDTO } + */ + ExchangeTransferStatusResponseDTO exchangeTransferStatus(ExchangeTransferStatusRequestDTO exchangeTransferMoneyRequestDTO); + + + /** + * 按时间获取投注记录 + * + * @param betRecordByTimeDTO 按时间dto投注记录 + * @return {@link Boolean } + */ + Boolean getBetRecordByTime(BetRecordByTimeDTO betRecordByTimeDTO); + + + /** + * 按历史时间获取投注记录 部分平台需要两个接口同时跑投注记录 + * + * @param betRecordByTimeDTO 按时间dto投注记录 + * @return {@link Boolean } + */ + Boolean getBetRecordByHistoryTime(BetRecordByTimeDTO betRecordByTimeDTO); + + /** + * 赠送免费局数 + * + * @param createFreeSpinRequest 创建自由旋转请求 + * @return {@link Boolean } + */ + Boolean createFreeSpin(CreateFreeSpinRequestDTO createFreeSpinRequest); + + + /** + * 获取游戏详细信息 + * + * @param getGameDetailRequestDTO 获取游戏详细信息请求dto + * @return {@link GetGameDetailResponseDTO } + */ + GetGameDetailResponseDTO getGameDetail(GetGameDetailRequestDTO getGameDetailRequestDTO); + + + /** + * 强制会员从游戏注销 + * + * @param kickMemberRequestDTO 踢会员请求dto + * @return {@link Boolean } + */ + Boolean kickMember(KickMemberRequestDTO kickMemberRequestDTO); + + /** + * 踢成员全部 + * + * @param kickMemberAllDTO 踢成员全部dto + * @return {@link Boolean } + */ + Boolean kickMemberAll(KickMemberAllDTO kickMemberAllDTO); + + /** + * 免费游戏玩家使用的纪录 + * + * @param getFreeSpinDashflowRequestDTO 获取自由旋转dashflow请求dto + * @return {@link List }<{@link GameFreeRecord }> + */ + List getFreeSpinDashflow(GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO); + + /** + * 取消赠送免费局数 + * + * @param cancelFreeSpinRequestDTO 取消免费旋转请求 + * @return {@link Boolean } + */ + Boolean cancelFreeSpin(CancelFreeSpinRequestDTO cancelFreeSpinRequestDTO); + + /** + * 游戏演示登录 + * + * @param gameDemoLoginRequestDTO 游戏演示登录请求dto + * @return {@link GameDemoLoginResponseDTO } + */ + GameDemoLoginResponseDTO gameDemoLogin(GameDemoLoginRequestDTO gameDemoLoginRequestDTO); + + + /** + * 数据构建 + * + * @param gamesDataBuildDTO 数据 + * @return {@link GameBettingDetails } + */ + GameBettingDetails dataBuild(GamesDataBuildDTO gamesDataBuildDTO); + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/BetRecordByTimeDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/BetRecordByTimeDTO.java new file mode 100644 index 0000000..2a22b3b --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/BetRecordByTimeDTO.java @@ -0,0 +1,35 @@ +package com.ff.dto; + +import lombok.Data; + +/** + * 按时间dto投注记录 + * + * @author shi + * @date 2024/10/22 + */ +@Data +public class BetRecordByTimeDTO extends GamesBaseRequestDTO { + /** + * 开始时间 + */ + private Long startTime; + /** + * 结束时间 + */ + private Long endTime; + /** + * 页数 + */ + private Integer page; + /** + * 每页资料笔数 + */ + private Integer pageLimit; + /** + * 游戏id + */ + private Integer gameId; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/CancelFreeSpinRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/CancelFreeSpinRequestDTO.java new file mode 100644 index 0000000..03c4bd9 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/CancelFreeSpinRequestDTO.java @@ -0,0 +1,23 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 取消免费旋转请求 + * + * @author shi + * @date 2024/11/11 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class CancelFreeSpinRequestDTO extends GamesBaseRequestDTO { + /** + * 取消免费赠送游戏id + */ + private String referenceId; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/CreateFreeSpinRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/CreateFreeSpinRequestDTO.java new file mode 100644 index 0000000..e37220e --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/CreateFreeSpinRequestDTO.java @@ -0,0 +1,69 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 创建自由旋转请求dto + * + * @author shi + * @date 2024/11/11 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class CreateFreeSpinRequestDTO extends GamesBaseRequestDTO { + + /** + * 玩家账号 (JILI 新玩家则会自动创立账号) + */ + private String account; + + /** + * 玩家使用货币。转账钱包这项请填空字符串。 + */ + private String currency; + + /** + * 免费局数序号, 长度上限 50 + */ + private String referenceId; + + /** + * 有效期限 + * + * + */ + private Long freeSpinValidity; + + /** + * 局数 + */ + private Integer numberOfRounds; + + /** + * 可使用游戏 ID, 超过一笔时以逗号分隔; 系统内游戏id + * 长度 上限 200 + */ + private List gameIds; + + /** + * 指定投注额; + * 未指定时, 一律使用游戏中的最小投注额 + */ + private BigDecimal betValue; + + /** + * 免费游戏局数可使用的开始时间 + * 未带此参数时, 赠送后玩家可以立即使用 + */ + private Long startTime; + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/CreateMemberRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/CreateMemberRequestDTO.java new file mode 100644 index 0000000..2c6ae5f --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/CreateMemberRequestDTO.java @@ -0,0 +1,38 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Map; + +/** + * 创建成员请求dto + * + * @author shi + * @date 2024/10/22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class CreateMemberRequestDTO extends GamesBaseRequestDTO { + /** + * 账户 + */ + private String account; + + /** + * ae 平台 投注限额 + */ + private Map>> betLimit; + + /** + * 平台类型 0 桌面 1 移动 + */ + private Integer platformType; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferMoneyRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferMoneyRequestDTO.java new file mode 100644 index 0000000..5ed3f1d --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferMoneyRequestDTO.java @@ -0,0 +1,58 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * 外汇转账 + * + * @author shi + * @date 2024/10/22 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class ExchangeTransferMoneyRequestDTO extends GamesBaseRequestDTO { + + + /** + * 账户 + */ + private String account; + + /** + * 租户密钥 + */ + private String tenantKey; + + /** + * 订单id + */ + private String orderId; + /** + * 金额 + */ + private BigDecimal amount; + + + /** + * 租户额度 + */ + private BigDecimal quota; + + + /** + * 转账类型 + * 1: 从 游戏商 转移额度到 平台商 (不看 amount 值,全 + * 部转出) + * 2: 从 平台商 转移额度到 游戏商 + * 3: 从 游戏商 转移额度到 平台商 + */ + private Integer transferType; + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferStatusRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferStatusRequestDTO.java new file mode 100644 index 0000000..e4ae569 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferStatusRequestDTO.java @@ -0,0 +1,36 @@ +package com.ff.dto; + +import lombok.Data; + +/** + * 兑换转账状态请求dto + * + * @author shi + * @date 2025/03/12 + */ +@Data +public class ExchangeTransferStatusRequestDTO extends GamesBaseRequestDTO { + + + + + /** + * 账户 + */ + private String account; + + /** + * 货币 + */ + private String currency; + + /** + * 订单ID + */ + private String orderId; + + /** + * 游戏兑换货币id + */ + private Long gameExchangeMoneyId; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferStatusResponseDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferStatusResponseDTO.java new file mode 100644 index 0000000..1313d84 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/ExchangeTransferStatusResponseDTO.java @@ -0,0 +1,45 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 交易所转账状态响应数据 + * + * @author shi + * @date 2025/04/08 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ExchangeTransferStatusResponseDTO { + + + /** + * 状态类型 StatusType 枚举 + */ + private Integer statusType; + + + /** + * 操作金额 + */ + private BigDecimal balance; + + /** + * 转账前金额(游戏币) + */ + private BigDecimal coinBefore; + + /** + * 转账后金额(游戏币) + */ + private BigDecimal coinAfter; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GameBettingDetails.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GameBettingDetails.java new file mode 100644 index 0000000..bf6eedc --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GameBettingDetails.java @@ -0,0 +1,183 @@ +package com.ff.dto; + +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; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GameDemoLoginRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GameDemoLoginRequestDTO.java new file mode 100644 index 0000000..ff587ea --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GameDemoLoginRequestDTO.java @@ -0,0 +1,34 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 游戏演示登录请求dto + * + * @author shi + * @date 2025/04/03 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class GameDemoLoginRequestDTO extends GamesBaseRequestDTO{ + /** + * 语言 + */ + private String lang; + + + /** + * 游戏类型 + */ + private String gameType; + + /** + * 游戏id + */ + private String gameId; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GameDemoLoginResponseDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GameDemoLoginResponseDTO.java new file mode 100644 index 0000000..7e70425 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GameDemoLoginResponseDTO.java @@ -0,0 +1,23 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 游戏演示登录响应dto + * + * @author shi + * @date 2025/04/03 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class GameDemoLoginResponseDTO { + /** + * 网址 + */ + private String url; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GameFreeRecord.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GameFreeRecord.java new file mode 100644 index 0000000..33f2a5c --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GameFreeRecord.java @@ -0,0 +1,106 @@ +package com.ff.dto; + +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; + +/** + * 免费赠送游戏记录对象 ff_game_free_record + * + * @author shi + * @date 2025-02-13 + */ +@Data +@AllArgsConstructor +@SuperBuilder +@NoArgsConstructor +public class GameFreeRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 币种编码 + */ + private String currencyCode; + + /** + * 平台代码 + */ + private String platformCode; + + /** + * 免费局数序号(唯一标识符) + */ + private String referenceId; + + /** + * 会员id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long memberId; + + /** + * 用户账号 + */ + private String memberAccount; + + /** + * 游戏id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long gameId; + + /** + * 免费游戏局数可使用的开始时间 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long sendTime; + + /** + * 免费局数过期时间 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long expiredTime; + + /** + * 免费局数记录更新时间 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long freeUpdateTime; + + /** + * 免费局数赠送的游戏名称 + */ + private String sendGame; + + /** + * 免费局数赠送的数量 + */ + private Integer sendAmount; + + /** + * 已使用的免费局数数量 + */ + private Integer usedAmount; + + /** + * 未使用的免费局数数量 + */ + private Integer unusedAmount; + + /** + * 免费状态 1正常 0 取消 + */ + private Integer freeStatus; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GamesBaseRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GamesBaseRequestDTO.java new file mode 100644 index 0000000..0b2c4fc --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GamesBaseRequestDTO.java @@ -0,0 +1,51 @@ +package com.ff.dto; + +import com.ff.game.domain.KeyInfo; +import com.ff.game.domain.Platform; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * 游戏请求dto + * + * @author shi + * @date 2024/10/22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class GamesBaseRequestDTO implements Serializable { + private static final long serialVersionUID = 5139311242800113436L; + /** + * 代理id + */ + private String agentId; + + /** + * 代理密钥 + */ + private String agentKey; + + /** + * 查询 + */ + private String query; + + + /** + * 货币 + */ + private String currency; + + private Platform vendor; + + private KeyInfo keyInfo; + + private String systemCurrency; + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GamesDataBuildDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GamesDataBuildDTO.java new file mode 100644 index 0000000..1b61b15 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GamesDataBuildDTO.java @@ -0,0 +1,46 @@ +package com.ff.dto; + +import com.ff.game.domain.Platform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 游戏数据构建dto + * + * @author shi + * @date 2024/10/22 + */ +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@Data +public class GamesDataBuildDTO +{ + + /** + * 数据 + */ + private Object data; + + /** + * 系统货币代码 + */ + private String systemCurrencyCode; + + /** + * 货币代码 + */ + private String currencyCode; + + /** + * 代理id + */ + private String agentId; + + private Platform platform; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GamesLogin.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GamesLogin.java new file mode 100644 index 0000000..a20da99 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GamesLogin.java @@ -0,0 +1,57 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Map; + +/** + * 游戏登录 + * + * @author shi + * @date 2024/10/22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class GamesLogin extends GamesBaseRequestDTO{ + /** + * 账户 + */ + private String account; + /** + * 游戏唯一识别值(同等 GameList 各游戏的 GameId) + */ + private String gameId; + /** + * UI 语系, 请参考 附录 – 语系参数 + */ + private String lang; + /** + * 不列入 md5 加密,游戏回主页功能导向位置 + */ + private String homeUrl; + /** + * 不列入 md5 加密,带入 web 或是 app + */ + private String platform; + /** + * 不列入 md5 加密, 带入 1 即关闭全屏幕模式 + */ + private Integer disableFullScreen; + + /** + * 游戏类型 + */ + private String gameType; + + + /** + * ae 平台 投注限额 + */ + private Map>> betLimit; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GetFreeSpinDashflowRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GetFreeSpinDashflowRequestDTO.java new file mode 100644 index 0000000..20d4295 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GetFreeSpinDashflowRequestDTO.java @@ -0,0 +1,19 @@ +package com.ff.dto; + +import lombok.Data; + +/** + * 获取自由旋转dashflow请求dto + * + * @author shi + * @date 2024/11/11 + */ +@Data +public class GetFreeSpinDashflowRequestDTO extends GamesBaseRequestDTO { + + /** + * 开始时间 + */ + private Long startTime; + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GetGameDetailRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GetGameDetailRequestDTO.java new file mode 100644 index 0000000..b75948c --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GetGameDetailRequestDTO.java @@ -0,0 +1,28 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 获取游戏详细信息请求dto + * + * @author shi + * @date 2024/11/12 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class GetGameDetailRequestDTO extends GamesBaseRequestDTO { + + /** + * 投注id + */ + private String wagersId; + /** + * 郎 + */ + private String lang; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/GetGameDetailResponseDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/GetGameDetailResponseDTO.java new file mode 100644 index 0000000..9255beb --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/GetGameDetailResponseDTO.java @@ -0,0 +1,25 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 获取游戏详细信息请求dto + * + * @author shi + * @date 2024/11/12 + */ +@NoArgsConstructor +@Data +@AllArgsConstructor +@Builder +public class GetGameDetailResponseDTO { + + + /** + * url + */ + private String url; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/KickMemberAllDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/KickMemberAllDTO.java new file mode 100644 index 0000000..d842489 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/KickMemberAllDTO.java @@ -0,0 +1,28 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import javax.validation.constraints.NotNull; + +/** + * 踢成员全部dto + * + * @author shi + * @date 2024/11/12 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class KickMemberAllDTO extends GamesBaseRequestDTO { + + /** + * 游戏id + */ + private String gameId; + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/KickMemberRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/KickMemberRequestDTO.java new file mode 100644 index 0000000..d2b0d6a --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/KickMemberRequestDTO.java @@ -0,0 +1,25 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 踢会员请求dto + * + * @author shi + * @date 2024/11/12 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class KickMemberRequestDTO extends GamesBaseRequestDTO { + + /** + * 账户 + */ + private String account; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/MemberInfoRequestDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/MemberInfoRequestDTO.java new file mode 100644 index 0000000..a53226c --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/MemberInfoRequestDTO.java @@ -0,0 +1,25 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 查询用户信息 + * + * @author shi + * @date 2024/10/22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class MemberInfoRequestDTO extends GamesBaseRequestDTO { + /** + * 账户 + */ + private String accounts; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/dto/MemberInfoResponseDTO.java b/ff-bean/xk-client/src/main/java/com/ff/dto/MemberInfoResponseDTO.java new file mode 100644 index 0000000..d967b13 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/dto/MemberInfoResponseDTO.java @@ -0,0 +1,41 @@ +package com.ff.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + + +/** + * 成员信息响应dto + * + * @author shi + * @date 2024/10/30 + */ +@NoArgsConstructor +@Data +@AllArgsConstructor +@SuperBuilder +public class MemberInfoResponseDTO { + + + /** + * 账户 + */ + private String account; + /** + * 余额 + */ + private BigDecimal balance; + /** + * 状态: + * 1: 在线 + * 2: 脱机 + * 3: 账号不存在 + * 4:未知 + */ + private Integer status; +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/enums/ErrorCode.java b/ff-bean/xk-client/src/main/java/com/ff/enums/ErrorCode.java new file mode 100644 index 0000000..7a3195b --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/enums/ErrorCode.java @@ -0,0 +1,66 @@ +package com.ff.enums; + +import lombok.Getter; + +import java.util.Optional; +import java.util.stream.Stream; + +/** + * 错误代码 + * + * @author shi + * @date 2025/02/19 + */ +@Getter +public enum ErrorCode { + ERROR(500, "业务异常"), + GAME_ACCOUNT_CREATION_FAILED(1001, "当前游戏账号已存在"), + ACCOUNT_NOT_EXIST(1002, "当前游戏账号不存在"), + PLATFORM_NOT_EXIST(1003, "游戏平台不存在"), + CURRENCY_NOT_EXIST(1004, "游戏平台不支持的货币"), + GAME_NOT_EXIST(1005, "游戏不存在"), + CURRENCY_EXCHANGE(1006, "不支持币种的汇率"), + FREQUENT_INTERFACE_REQUESTS(1007, "接口请求频繁"), + BALANCE_TRANSFER_FAILED(1008, "余额转移失败"), + LANG_NOT_EXIST(1009, "游戏平台不支持的语言"), + ORDER_NOT_EXIST(1010, "订单不存在"), + PLAYERS_ARE_PLAYING(1011, "玩家游玩中"), + INSUFFICIENT_PLAYER_BALANCE(1012, "玩家余额不足"), + KICK_OUT_AILED(1013, "玩家踢出失败"), + ACCOUNT_NOT_ONLINE(1014, "账号不在线"), + FREQUENT_BALANCE_TRANSFER(1015, "当前游戏账号余额转移频繁"), + PLATFORM_NOT_METHODS(1016, "游戏平台不支持的方法"), + Create_Member_Failure(1017, "创建会员失败"), + Transfer_In_Failure(1018, "转入失败"), + Transfer_Out_Failure(1019, "转出失败"), + Get_Member_Info_Failure(1020, "获取会员信息失败"), + Transfer_Not_Exist(1021, "转帐操作不存在"), + Get_Url_Failure(1022, "获取URL失败"), + Miss_Config(1023, "缺少配置"), + ; + + // 获取错误码 + private final int code; + // 获取错误信息 + private final String message; + + // 构造函数 + ErrorCode(int code, String message) { + this.code = code; + this.message = message; + } + + /** + * 按代码查找系统 + * + * @param code 代码 + * @return {@link String } + */ + public static String findByCode(Integer code) { + Optional system = Stream.of(ErrorCode.values()) + .filter(errorCode -> errorCode.getCode() == code) + .map(ErrorCode::getMessage) + .findFirst(); + return system.orElse(null); + } +} \ No newline at end of file diff --git a/ff-bean/xk-client/src/main/java/com/ff/enums/GamePlatforms.java b/ff-bean/xk-client/src/main/java/com/ff/enums/GamePlatforms.java new file mode 100644 index 0000000..642bc65 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/enums/GamePlatforms.java @@ -0,0 +1,49 @@ +package com.ff.enums; + +import java.util.ArrayList; +import java.util.List; + +public enum GamePlatforms { + JILI("JILI", "JILI"), + XK("XK", "XK"), + PG("PG", "PG"), + PGX("PGX", "PGX"), + FC("FC", "FC"), + SA("SA", "SA"), + DG("DG", "DG"), + MT("MT", "美天棋牌"), + AE("AE", "AE"), + KM("KM", "KM"), + PGT("PGT", "PGT"), + FBSports("FBSports", "FB体育"), + SV388("SV388", "SV388真人"), + DBSports("DBSports", "DB体育"); + + private final String code; + private final String info; + + GamePlatforms(String code, String info) { + this.code = code; + this.info = info; + } + + + public static List getCodes() { + List result = new ArrayList<>(); + GamePlatforms[] values = GamePlatforms.values(); + for (GamePlatforms value : values) { + result.add(value.getCode()); + } + return result; + } + + public String getCode() { + return code; + } + + public String getInfo() { + return info; + } + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/enums/PlatformType.java b/ff-bean/xk-client/src/main/java/com/ff/enums/PlatformType.java new file mode 100644 index 0000000..cd9bdbd --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/enums/PlatformType.java @@ -0,0 +1,31 @@ +package com.ff.enums; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 平台类型 + * + * @author shi + * @date 2025/03/25 + */ +@Getter +@AllArgsConstructor +public enum PlatformType { + ELECTRONIC(1, "电子"), + CARD_GAME(2, "棋牌"), + GAME_HALL(3, "游戏大厅"), + FISHING(4, "捕鱼"), + BETTING_MACHINE(5, "押分机 (含宾果)"), + VIDEO(6, "视讯"), + LOTTERY(7, "彩票"), + SPORTS(8, "体育"), + HUNTING(9, "捕猎"), + BaiRen(10, "百人场"); + + private final int code; + private final String name; + + +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/enums/StatusType.java b/ff-bean/xk-client/src/main/java/com/ff/enums/StatusType.java new file mode 100644 index 0000000..6198833 --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/enums/StatusType.java @@ -0,0 +1,24 @@ +package com.ff.enums; + +import lombok.Getter; + +/** + * 状态类型 + * + * @author shi + * @date 2025/03/12 + */ +@Getter +public enum StatusType { + IN_PROGRESS(0, "进行中"), + SUCCESS(1, "成功"), + FAILURE(2, "失败"); + + private final Integer value; + private final String description; + + StatusType(Integer value, String description) { + this.value = value; + this.description = description; + } +} diff --git a/ff-bean/xk-client/src/main/java/com/ff/service/PlatformManager.java b/ff-bean/xk-client/src/main/java/com/ff/service/PlatformManager.java new file mode 100644 index 0000000..693d26d --- /dev/null +++ b/ff-bean/xk-client/src/main/java/com/ff/service/PlatformManager.java @@ -0,0 +1,24 @@ +package com.ff.service; + +import com.ff.game.domain.Platform; +import com.ff.redis.GRedisCache; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author cengy + */ +@Service +public class PlatformManager { + + @Autowired + GRedisCache gRedisCache; + + public Platform get(String platformCode) { + return gRedisCache.getCacheObject(getCacheKey(platformCode)); + } + + private String getCacheKey(String configKey) { + return "platform:" + configKey; + } +} diff --git a/ff-fetcher/pom.xml b/ff-fetcher/pom.xml new file mode 100644 index 0000000..0cb60e4 --- /dev/null +++ b/ff-fetcher/pom.xml @@ -0,0 +1,112 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + com.ff + ff-fetcher + 0.0.1 + ff-fetcher + + + + + com.ff + xk-client + + + com.xuxueli + xxl-job-core + + + + org.projectlombok + lombok + provided + + + com.dtflys.forest + forest-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.apache.commons + commons-pool2 + + + org.springframework.boot + spring-boot-starter-data-mongodb + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.1.0 + + false + xk-fetcher + + + + xk-fetcher + + + diff --git a/ff-fetcher/src/main/java/com/ff/FFApplication.java b/ff-fetcher/src/main/java/com/ff/FFApplication.java new file mode 100644 index 0000000..95cbff3 --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/FFApplication.java @@ -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()); + + + } + + +} diff --git a/ff-fetcher/src/main/java/com/ff/service/PlatformManager.java b/ff-fetcher/src/main/java/com/ff/service/PlatformManager.java new file mode 100644 index 0000000..693d26d --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/service/PlatformManager.java @@ -0,0 +1,24 @@ +package com.ff.service; + +import com.ff.game.domain.Platform; +import com.ff.redis.GRedisCache; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author cengy + */ +@Service +public class PlatformManager { + + @Autowired + GRedisCache gRedisCache; + + public Platform get(String platformCode) { + return gRedisCache.getCacheObject(getCacheKey(platformCode)); + } + + private String getCacheKey(String configKey) { + return "platform:" + configKey; + } +} diff --git a/ff-fetcher/src/main/java/com/ff/xxljob/config/XxlJobConfig.java b/ff-fetcher/src/main/java/com/ff/xxljob/config/XxlJobConfig.java new file mode 100644 index 0000000..60c88da --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/xxljob/config/XxlJobConfig.java @@ -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; + } +} diff --git a/ff-fetcher/src/main/java/com/ff/xxljob/fetch/TaskParam.java b/ff-fetcher/src/main/java/com/ff/xxljob/fetch/TaskParam.java new file mode 100644 index 0000000..868ec99 --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/xxljob/fetch/TaskParam.java @@ -0,0 +1,13 @@ +package com.ff.xxljob.fetch; + +import lombok.Data; + +/** + * @author cengy + */ +@Data +public class TaskParam { + // 定时任务的参数:平台code, 拉多少分钟前的 + private String platformCode; + private int ago; +} diff --git a/ff-fetcher/src/main/java/com/ff/xxljob/task/AbstractTask.java b/ff-fetcher/src/main/java/com/ff/xxljob/task/AbstractTask.java new file mode 100644 index 0000000..55251f2 --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/xxljob/task/AbstractTask.java @@ -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); + } + +} diff --git a/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchHistoryOrderListTask.java b/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchHistoryOrderListTask.java new file mode 100644 index 0000000..48b1da8 --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchHistoryOrderListTask.java @@ -0,0 +1,74 @@ +package com.ff.xxljob.task; + +import com.ff.client.IGamesService; +import com.ff.dto.BetRecordByTimeDTO; +import com.ff.game.domain.KeyInfo; +import com.ff.game.domain.Platform; +import com.ff.service.PlatformManager; +import com.ff.utils.AdjustTimestampByMinuteOffset; +import com.ff.utils.CurrentMillis; +import com.ff.xxljob.fetch.TaskParam; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 拉取历史投注订单列表 + * + * @author cengy + */ +@Component +@Slf4j +public class FetchHistoryOrderListTask extends FetchTask { + + @Autowired(required = false) + private Map clientServiceMap = new HashMap<>(); + + @Autowired + private PlatformManager platformManager; + + @XxlJob("fetchHistoryOrderListTask") + @Override + public void doExecute(TaskParam taskParam) { + + //捞取指定分钟前的数据 + Platform platform = platformManager.get(taskParam.getPlatformCode()); + if (null == platform) { + return; + } + int agoMin = taskParam.getAgo(); + //捞取指定分钟前的数据 + Long endTime = CurrentMillis.get(); + Long startTime = AdjustTimestampByMinuteOffset.get(endTime, agoMin); + List keyData = platform.getKeyInfo(); + + for (KeyInfo keyInfo : keyData) { + try { + BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO(); + betRecordByTimeDTO.setStartTime(startTime); + betRecordByTimeDTO.setEndTime(endTime); + betRecordByTimeDTO.setPage(1); + betRecordByTimeDTO.setPageLimit(1000); + betRecordByTimeDTO.setAgentId(keyInfo.getCode()); + betRecordByTimeDTO.setAgentKey(keyInfo.getKey()); + betRecordByTimeDTO.setKeyInfo(keyInfo); + betRecordByTimeDTO.setVendor(platform); + + betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency()); + betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency())); + + clientServiceMap.get(platform.getPlatformCode() + "Service").getBetRecordByHistoryTime(betRecordByTimeDTO); + } catch (Exception e) { + log.error("同步平台投注记录失败platformCode:{}", platform.getPlatformCode(), e); + } + if (platform.isMultiAgent()) { + break; + } + } + } +} diff --git a/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchOrderListTask.java b/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchOrderListTask.java new file mode 100644 index 0000000..09d6325 --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchOrderListTask.java @@ -0,0 +1,76 @@ +package com.ff.xxljob.task; + +import com.ff.client.IGamesService; +import com.ff.dto.BetRecordByTimeDTO; +import com.ff.game.domain.KeyInfo; +import com.ff.game.domain.Platform; +import com.ff.service.PlatformManager; +import com.ff.utils.AdjustTimestampByMinuteOffset; +import com.ff.utils.CurrentMillis; +import com.ff.xxljob.fetch.TaskParam; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 拉取投注订单列表 + * + * @author cengy + */ +@Component +@Slf4j +public class FetchOrderListTask extends FetchTask { + + @Autowired(required = false) + private Map clientServiceMap = new HashMap<>(); + + @Autowired + private PlatformManager platformManager; + + @XxlJob("fetchOrderListTask") + @Override + public void doExecute(TaskParam taskParam) { + + Platform platform = platformManager.get(taskParam.getPlatformCode()); + if (null == platform) { + return; + } + int agoMin = taskParam.getAgo(); + //捞取指定分钟前的数据 + Long endTime = CurrentMillis.get(); + Long startTime = AdjustTimestampByMinuteOffset.get(endTime, agoMin); + + List keyData = platform.getKeyInfo(); + + for (KeyInfo keyInfo : keyData) { + try { + BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO(); + betRecordByTimeDTO.setStartTime(startTime); + betRecordByTimeDTO.setEndTime(endTime); + betRecordByTimeDTO.setPage(1); + betRecordByTimeDTO.setPageLimit(1000); + betRecordByTimeDTO.setAgentId(keyInfo.getCode()); + betRecordByTimeDTO.setAgentKey(keyInfo.getKey()); + betRecordByTimeDTO.setKeyInfo(keyInfo); + betRecordByTimeDTO.setVendor(platform); + + betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency()); + betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency())); + + clientServiceMap.get(platform.getPlatformCode() + "Service").getBetRecordByTime(betRecordByTimeDTO); + } catch (Exception e) { + log.error("同步平台投注记录失败platformCode:{}", platform.getPlatformCode(), e); + } + if (platform.isMultiAgent()) { + break; + } + } + + + } +} diff --git a/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchTask.java b/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchTask.java new file mode 100644 index 0000000..09f2943 --- /dev/null +++ b/ff-fetcher/src/main/java/com/ff/xxljob/task/FetchTask.java @@ -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); +} diff --git a/ff-fetcher/src/main/resources/application-prod.properties b/ff-fetcher/src/main/resources/application-prod.properties new file mode 100644 index 0000000..c28a3a3 --- /dev/null +++ b/ff-fetcher/src/main/resources/application-prod.properties @@ -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 diff --git a/ff-fetcher/src/main/resources/application.properties b/ff-fetcher/src/main/resources/application.properties new file mode 100644 index 0000000..f841722 --- /dev/null +++ b/ff-fetcher/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.profiles.active=test diff --git a/ff-fetcher/src/main/resources/config/prod/mongo.properties b/ff-fetcher/src/main/resources/config/prod/mongo.properties new file mode 100644 index 0000000..51783d3 --- /dev/null +++ b/ff-fetcher/src/main/resources/config/prod/mongo.properties @@ -0,0 +1,2 @@ +# Mongo 数据源配置 +spring.data.mongodb.uri=mongodb://admin:123456@localhost:17017/?authSource=admin \ No newline at end of file diff --git a/ff-fetcher/src/main/resources/config/prod/redis.properties b/ff-fetcher/src/main/resources/config/prod/redis.properties new file mode 100644 index 0000000..b46b3c2 --- /dev/null +++ b/ff-fetcher/src/main/resources/config/prod/redis.properties @@ -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 diff --git a/ff-fetcher/src/main/resources/config/prod/xxljob.properties b/ff-fetcher/src/main/resources/config/prod/xxljob.properties new file mode 100644 index 0000000..00ed333 --- /dev/null +++ b/ff-fetcher/src/main/resources/config/prod/xxljob.properties @@ -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 diff --git a/ff-fetcher/src/main/resources/config/test/mongo.properties b/ff-fetcher/src/main/resources/config/test/mongo.properties new file mode 100644 index 0000000..51783d3 --- /dev/null +++ b/ff-fetcher/src/main/resources/config/test/mongo.properties @@ -0,0 +1,2 @@ +# Mongo 数据源配置 +spring.data.mongodb.uri=mongodb://admin:123456@localhost:17017/?authSource=admin \ No newline at end of file diff --git a/ff-fetcher/src/main/resources/config/test/redis.properties b/ff-fetcher/src/main/resources/config/test/redis.properties new file mode 100644 index 0000000..b46b3c2 --- /dev/null +++ b/ff-fetcher/src/main/resources/config/test/redis.properties @@ -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 diff --git a/ff-fetcher/src/main/resources/config/test/xxljob.properties b/ff-fetcher/src/main/resources/config/test/xxljob.properties new file mode 100644 index 0000000..00ed333 --- /dev/null +++ b/ff-fetcher/src/main/resources/config/test/xxljob.properties @@ -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 diff --git a/ff-fetcher/src/main/resources/i18n/messages.properties b/ff-fetcher/src/main/resources/i18n/messages.properties new file mode 100644 index 0000000..c10300d --- /dev/null +++ b/ff-fetcher/src/main/resources/i18n/messages.properties @@ -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=上传的文件大小超出限制的文件大小!
允许的文件最大大小是:{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=两次密码不一致 \ No newline at end of file diff --git a/ff-fetcher/src/main/resources/logback.xml b/ff-fetcher/src/main/resources/logback.xml new file mode 100644 index 0000000..67659a6 --- /dev/null +++ b/ff-fetcher/src/main/resources/logback.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/sys-info.log + + + + ${log.path}/sys-info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/sys-error.log + + + + ${log.path}/sys-error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + ${log.path}/sys-user.log + + + ${log.path}/sys-user.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ff-game/pom.xml b/ff-game/pom.xml index abeced9..a6b57b9 100644 --- a/ff-game/pom.xml +++ b/ff-game/pom.xml @@ -11,46 +11,39 @@ com.ff ff-game 0.0.1 - ff-admin - ff-admin + ff-game + ff-game + + com.ff + comp-redis + + + com.ff + ff-domain + + + com.xuxueli + xxl-job-core + - + - + true <!– 表示依赖不会传递 –> + --> com.fasterxml.jackson.dataformat jackson-dataformat-xml - - - org.springframework - spring-context - - - - - io.springfox - springfox-boot-starter - - - - - io.swagger - swagger-models - 1.6.2 - - mysql @@ -69,17 +62,6 @@ - - - com.ff - ff-base - - - - - com.ff - ff-gen - org.projectlombok lombok @@ -97,8 +79,113 @@ 1.0.0 + + com.dtflys.forest + forest-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba + druid-spring-boot-starter + + + + + pro.fessional + kaptcha + + + + com.github.oshi + oshi-core + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + + + org.apache.poi + poi-ooxml + + + + + io.jsonwebtoken + jjwt + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + eu.bitwalker + UserAgentUtils + + + + + com.google.zxing + core + + + com.google.zxing + javase + + + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.apache.commons + commons-pool2 + @@ -118,17 +205,9 @@ - - org.apache.maven.plugins - maven-war-plugin - 3.1.0 - - false - ${project.artifactId} - - + - ${project.artifactId} + xk-admin diff --git a/ff-game/src/main/java/com/ff/FFApplication.java b/ff-game/src/main/java/com/ff/FFApplication.java index a4bc75d..df86721 100644 --- a/ff-game/src/main/java/com/ff/FFApplication.java +++ b/ff-game/src/main/java/com/ff/FFApplication.java @@ -1,8 +1,5 @@ package com.ff; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringBootVersion; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -17,20 +14,16 @@ import org.springframework.security.authentication.dao.DaoAuthenticationProvider * * @author ff */ -@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) -@MapperScan({"com.ff.base.system.mapper","com.ff.quartz.mapper","com.ff.gen.mapper"}) +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = DaoAuthenticationProvider.class)}) @EnableAsync -public class FFApplication -{ +public class FFApplication { - - public static void main(String[] args) - { + public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); SpringApplication.run(FFApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ FF启动成功 ლ(´ڡ`ლ)゙"+ SpringBootVersion.getVersion()); + System.out.println("(♥◠‿◠)ノ゙ FF启动成功 ლ(´ڡ`ლ)゙" + SpringBootVersion.getVersion()); } diff --git a/ff-game/src/main/java/com/ff/FFServletInitializer.java b/ff-game/src/main/java/com/ff/FFServletInitializer.java deleted file mode 100644 index 7e82010..0000000 --- a/ff-game/src/main/java/com/ff/FFServletInitializer.java +++ /dev/null @@ -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); - } -} diff --git a/ff-game/src/main/java/com/ff/agent/controller/AgentController.java b/ff-game/src/main/java/com/ff/agent/controller/AgentController.java index b6bfbc6..53a9af6 100644 --- a/ff-game/src/main/java/com/ff/agent/controller/AgentController.java +++ b/ff-game/src/main/java/com/ff/agent/controller/AgentController.java @@ -1,9 +1,8 @@ package com.ff.agent.controller; -import - com.ff.agent.dto.AgentTenantSecretKeyDTO; import com.ff.agent.dto.AgentCreateTenantDTO; +import com.ff.agent.dto.AgentTenantSecretKeyDTO; import com.ff.base.constant.Constants; import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; @@ -12,23 +11,20 @@ import com.ff.base.enums.OperationType; import com.ff.base.enums.QuotaType; import com.ff.base.exception.base.BaseException; import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.dto.CreateTenantDTO; import com.ff.base.system.dto.TenantSecretKeyDTO; -import com.ff.base.system.service.ISysDeptService; -import com.ff.base.system.service.ISysRoleService; -import com.ff.base.system.service.ISysUserService; +import com.ff.base.system.service.ITenantPlatformService; +import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.base.utils.DateUtils; import com.ff.base.utils.bean.BeanUtils; import com.ff.base.utils.ip.IpUtils; -import com.ff.base.system.domain.TenantSecretKey; import com.ff.common.domain.TenantAgentPlatform; import com.ff.common.dto.BalanceChangesDTO; -import com.ff.common.service.ITenantAgentPlatformService; -import com.ff.common.service.ITenantGameQuotaService; -import com.ff.base.system.service.ITenantSecretKeyService; -import com.ff.base.system.service.ITenantPlatformService; +import com.ff.tenant.service.ITenantAgentPlatformService; +import com.ff.tenant.service.ITenantGameQuotaBiz; +import com.ff.tenant.service.ITenantGameQuotaService; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -56,11 +52,15 @@ public class AgentController extends BaseController { @Resource private ITenantGameQuotaService tenantGameQuotaService; + + @Resource + private ITenantGameQuotaBiz tenantGameQuotaBiz; @Resource private ITenantPlatformService tenantPlatformService; @Resource private ITenantAgentPlatformService tenantAgentPlatformService; + /** * 列表 * @@ -80,7 +80,7 @@ public class AgentController extends BaseController { AgentTenantSecretKeyDTO agentTenantSecretKeyDTO = new AgentTenantSecretKeyDTO(); BeanUtils.copyProperties(row, agentTenantSecretKeyDTO); agentTenantSecretKeyDTO.setTenantPlatforms(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder() - .tenantId(row.getId()) + .tenantId(row.getId()) .build())); list.add(agentTenantSecretKeyDTO); } @@ -105,7 +105,7 @@ public class AgentController extends BaseController { for (TenantAgentPlatform tenantAgentPlatform : agentCreateTenantDTO.getTenantAgentPlatforms()) { TenantAgentPlatform agentPlatform = tenantAgentPlatformService.selectTenantAgentPlatformById(tenantAgentPlatform.getId()); // 成本比平台成本大 - if (agentPlatform.getCost().compareTo(tenantAgentPlatform.getCost())>0){ + if (agentPlatform.getCost().compareTo(tenantAgentPlatform.getCost()) > 0) { throw new BaseException("成本比例不允许比最低比例小"); } TenantPlatform tenantPlatform = new TenantPlatform(); @@ -131,7 +131,7 @@ public class AgentController extends BaseController { if (tenant > 0) { //信誉额度 if (!ObjectUtils.isEmpty(agentCreateTenantDTO.getRealBalance())) { - tenantGameQuotaService.balanceChanges(BalanceChangesDTO.builder() + tenantGameQuotaBiz.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.TRUE) .currencyCode(Constants.USDT) .tenantKey(agentCreateTenantDTO.getAccount()) diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java index 02e2ce7..c599d75 100644 --- a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java @@ -1,36 +1,28 @@ package com.ff.agent.controller; -import java.util.ArrayList; -import java.util.List; -import javax.annotation.Resource; - +import com.ff.agent.domain.TenantAgentInvite; import com.ff.agent.domain.TenantAgentInvitePlatform; import com.ff.agent.dto.TenantAgentInviteDTO; +import com.ff.agent.service.ITenantAgentInviteBiz; import com.ff.agent.service.ITenantAgentInvitePlatformService; +import com.ff.agent.service.ITenantAgentInviteService; import com.ff.base.annotation.Anonymous; -import com.ff.base.constant.ConfigConstants; -import com.ff.base.enums.InviteType; -import com.ff.base.system.domain.TenantPlatform; -import com.ff.base.system.service.ISysConfigService; -import com.ff.base.utils.bean.BeanUtils; -import com.ff.common.domain.TenantAgentPlatform; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ff.base.annotation.Log; +import com.ff.base.constant.ConfigConstants; import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.BusinessType; -import com.ff.agent.domain.TenantAgentInvite; -import com.ff.agent.service.ITenantAgentInviteService; import com.ff.base.core.page.TableDataInfo; +import com.ff.base.enums.BusinessType; +import com.ff.base.enums.InviteType; +import com.ff.base.system.service.ISysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; /** * 代理邀请链接Controller @@ -43,6 +35,8 @@ import com.ff.base.core.page.TableDataInfo; public class TenantAgentInviteController extends BaseController { @Autowired private ITenantAgentInviteService tenantAgentInviteService; + @Autowired + private ITenantAgentInviteBiz tenantAgentInviteBiz; @Resource private ISysConfigService sysConfigService; @@ -93,7 +87,7 @@ public class TenantAgentInviteController extends BaseController { public AjaxResult add(@Validated @RequestBody TenantAgentInviteDTO tenantAgentInvite) { tenantAgentInvite.setAgentId(getUserId()); String inviteUrl = sysConfigService.selectConfigByKey(ConfigConstants.INVITE_URL); - tenantAgentInvite.setInviteCode(tenantAgentInviteService.getInviteCode()); + tenantAgentInvite.setInviteCode(tenantAgentInviteBiz.getInviteCode()); tenantAgentInvite.setInviteUrl(inviteUrl + "?code=" + tenantAgentInvite.getInviteCode()); tenantAgentInvite.setCreateBy(getUsername()); int result = tenantAgentInviteService.insertTenantAgentInvite(tenantAgentInvite); diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java index c28c2a5..5d50e5c 100644 --- a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java @@ -1,11 +1,5 @@ package com.ff.agent.controller; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; - import cn.hutool.core.util.IdUtil; import com.ff.agent.domain.TenantAgentCommission; import com.ff.agent.domain.TenantAgentInvite; @@ -13,48 +7,38 @@ import com.ff.agent.domain.TenantAgentInvitePlatform; import com.ff.agent.domain.TenantAgentInviteRegister; import com.ff.agent.dto.TenantAgentInviteRegisterAddDTO; import com.ff.agent.dto.TenantAgentInviteRegisterDTO; -import com.ff.agent.service.ITenantAgentCommissionService; -import com.ff.agent.service.ITenantAgentInvitePlatformService; -import com.ff.agent.service.ITenantAgentInviteRegisterService; -import com.ff.agent.service.ITenantAgentInviteService; +import com.ff.agent.service.*; import com.ff.base.annotation.Anonymous; -import com.ff.base.annotation.Excel; import com.ff.base.constant.Constants; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.core.page.TableDataInfo; import com.ff.base.enums.*; import com.ff.base.system.domain.TenantAgent; import com.ff.base.system.domain.TenantPlatform; import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.dto.CreateTenantDTO; -import com.ff.base.system.dto.TenantSecretKeyDTO; import com.ff.base.system.service.ITenantAgentService; import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.base.utils.DateUtils; import com.ff.base.utils.MessageUtils; -import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.bean.BeanUtils; import com.ff.base.utils.ip.IpUtils; -import com.ff.base.utils.uuid.IdUtils; import com.ff.common.dto.BalanceChangesDTO; -import com.ff.common.service.ITenantGameQuotaService; -import org.springframework.security.access.prepost.PreAuthorize; +import com.ff.tenant.service.ITenantGameQuotaBiz; +import com.ff.tenant.service.ITenantGameQuotaService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ff.base.annotation.Log; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.utils.poi.ExcelUtil; -import com.ff.base.core.page.TableDataInfo; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; /** * 代理邀请注册Controller @@ -67,6 +51,8 @@ import com.ff.base.core.page.TableDataInfo; public class TenantAgentInviteRegisterController extends BaseController { @Autowired private ITenantAgentInviteRegisterService tenantAgentInviteRegisterService; + @Autowired + private ITenantAgentInviteRegisterBiz tenantAgentInviteRegisterBiz; @Resource private ITenantAgentInviteService tenantAgentInviteService; @@ -76,6 +62,8 @@ public class TenantAgentInviteRegisterController extends BaseController { @Resource private ITenantGameQuotaService tenantGameQuotaService; + @Resource + private ITenantGameQuotaBiz tenantGameQuotaBiz; @Resource private ITenantAgentCommissionService tenantAgentCommissionService; @@ -94,7 +82,7 @@ public class TenantAgentInviteRegisterController extends BaseController { public TableDataInfo list(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO) { startPage(); tenantAgentInviteRegisterDTO.setAgentId(getUserId()); - List list = tenantAgentInviteRegisterService.selectTenantAgentInviteRegisterListDTO(tenantAgentInviteRegisterDTO); + List list = tenantAgentInviteRegisterBiz.selectTenantAgentInviteRegisterListDTO(tenantAgentInviteRegisterDTO); return getDataTable(list); } @@ -185,7 +173,7 @@ public class TenantAgentInviteRegisterController extends BaseController { .build()); //信誉额度 if (result > 0 & !ObjectUtils.isEmpty(tenantAgentInvite.getRealBalance())) { - tenantGameQuotaService.balanceChanges(BalanceChangesDTO.builder() + tenantGameQuotaBiz.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.TRUE) .currencyCode(Constants.USDT) .tenantKey(tenantAgentInviteRegister.getAccount()) diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java index 569d422..b41a97a 100644 --- a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java @@ -1,19 +1,16 @@ package com.ff.agent.controller; -import java.util.List; - -import com.ff.base.core.page.PageDomain; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; import com.ff.common.domain.TenantAgentPlatform; -import com.ff.common.service.ITenantAgentPlatformService; +import com.ff.tenant.service.ITenantAgentPlatformService; import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.agent.domain.TenantAgentInvitePlatform; -import com.ff.agent.service.ITenantAgentInvitePlatformService; + +import java.util.List; /** * 平台邀请注册成本管理Controller @@ -23,8 +20,7 @@ import com.ff.agent.service.ITenantAgentInvitePlatformService; */ @RestController @RequestMapping("/agent/platform") -public class TenantAgentPlatformController extends BaseController -{ +public class TenantAgentPlatformController extends BaseController { @Autowired private ITenantAgentPlatformService tenantAgentPlatformService; @@ -32,8 +28,7 @@ public class TenantAgentPlatformController extends BaseController * 查询平台邀请注册成本管理列表 */ @GetMapping("/select") - public AjaxResult select( ) - { + public AjaxResult select() { PageHelper.orderBy("platform_code desc,currency_code desc"); List list = tenantAgentPlatformService.selectTenantAgentPlatformList(TenantAgentPlatform.builder().build()); return AjaxResult.success(list); diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java deleted file mode 100644 index e0daaac..0000000 --- a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.ff.agent.mapper; - -import java.math.BigDecimal; -import java.util.List; -import com.ff.agent.domain.TenantAgentCommission; - -/** - * 代理佣金管理 Mapper接口 - * - * @author shi - * @date 2025-02-26 - */ -public interface TenantAgentCommissionMapper -{ - /** - * 查询代理佣金管理 - * - * @param id 代理佣金管理 主键 - * @return 代理佣金管理 - */ - TenantAgentCommission selectTenantAgentCommissionById(Long id); - - /** - * 查询代理佣金管理 列表 - * - * @param tenantAgentCommission 代理佣金管理 - * @return 代理佣金管理 集合 - */ - List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); - - /** - * 新增代理佣金管理 - * - * @param tenantAgentCommission 代理佣金管理 - * @return 结果 - */ - int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission); - - /** - * 修改代理佣金管理 - * - * @param tenantAgentCommission 代理佣金管理 - * @return 结果 - */ - int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission); - - /** - * 删除代理佣金管理 - * - * @param id 代理佣金管理 主键 - * @return 结果 - */ - int deleteTenantAgentCommissionById(Long id); - - /** - * 批量删除代理佣金管理 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - int deleteTenantAgentCommissionByIds(Long[] ids); - - - /** - * 获得代理佣金 - * - * @param tenantAgentCommission 租户代理佣金 - * @return {@link BigDecimal } - */ - BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission); - -} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterBizMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterBizMapper.java new file mode 100644 index 0000000..c052aae --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterBizMapper.java @@ -0,0 +1,22 @@ +package com.ff.agent.mapper; + +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; + +import java.util.List; + +/** + * 代理邀请注册Mapper接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface TenantAgentInviteRegisterBizMapper { + /** + * 选择租户代理邀请注册列表dto + * + * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto + * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> + */ + List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO); + +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java deleted file mode 100644 index 0cf28f7..0000000 --- a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.ff.agent.mapper; - -import com.ff.agent.domain.TenantAgentInviteRegister; -import com.ff.agent.dto.TenantAgentInviteRegisterDTO; - -import java.util.List; - -/** - * 代理邀请注册Mapper接口 - * - * @author shi - * @date 2025-02-25 - */ -public interface TenantAgentInviteRegisterMapper -{ - /** - * 查询代理邀请注册 - * - * @param id 代理邀请注册主键 - * @return 代理邀请注册 - */ - TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id); - - - /** - * 选择租户代理邀请注册列表dto - * - * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto - * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> - */ - List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO); - - /** - * 查询代理邀请注册列表 - * - * @param tenantAgentInviteRegister 代理邀请注册 - * @return 代理邀请注册集合 - */ - List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister); - - /** - * 新增代理邀请注册 - * - * @param tenantAgentInviteRegister 代理邀请注册 - * @return 结果 - */ - int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); - - /** - * 修改代理邀请注册 - * - * @param tenantAgentInviteRegister 代理邀请注册 - * @return 结果 - */ - int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); - - /** - * 删除代理邀请注册 - * - * @param id 代理邀请注册主键 - * @return 结果 - */ - int deleteTenantAgentInviteRegisterById(Long id); - - /** - * 批量删除代理邀请注册 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - int deleteTenantAgentInviteRegisterByIds(Long[] ids); -} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteBiz.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteBiz.java new file mode 100644 index 0000000..f6b51fb --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteBiz.java @@ -0,0 +1,20 @@ +package com.ff.agent.service; + +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; + +import java.util.List; + +/** + * 代理邀请注册Service接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface ITenantAgentInviteBiz { + /** + * 获取邀请码 + * + * @return {@link String } + */ + String getInviteCode(); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterBiz.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterBiz.java new file mode 100644 index 0000000..ecbb784 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterBiz.java @@ -0,0 +1,22 @@ +package com.ff.agent.service; + +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; + +import java.util.List; + +/** + * 代理邀请注册Service接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface ITenantAgentInviteRegisterBiz { + /** + * 选择租户代理邀请注册列表dto + * + * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto + * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> + */ + List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO); + +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java deleted file mode 100644 index 40cd363..0000000 --- a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.ff.agent.service; - -import com.ff.agent.domain.TenantAgentInviteRegister; -import com.ff.agent.dto.TenantAgentInviteRegisterDTO; - -import java.util.List; - -/** - * 代理邀请注册Service接口 - * - * @author shi - * @date 2025-02-25 - */ -public interface ITenantAgentInviteRegisterService -{ - /** - * 查询代理邀请注册 - * - * @param id 代理邀请注册主键 - * @return 代理邀请注册 - */ - TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id); - - /** - * 查询代理邀请注册列表 - * - * @param tenantAgentInviteRegister 代理邀请注册 - * @return 代理邀请注册集合 - */ - List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister); - - - /** - * 选择租户代理邀请注册列表dto - * - * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto - * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> - */ - List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO); - - - /** - * 新增代理邀请注册 - * - * @param tenantAgentInviteRegister 代理邀请注册 - * @return 结果 - */ - int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); - - /** - * 修改代理邀请注册 - * - * @param tenantAgentInviteRegister 代理邀请注册 - * @return 结果 - */ - int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); - - /** - * 批量删除代理邀请注册 - * - * @param ids 需要删除的代理邀请注册主键集合 - * @return 结果 - */ - int deleteTenantAgentInviteRegisterByIds(Long[] ids); - - /** - * 删除代理邀请注册信息 - * - * @param id 代理邀请注册主键 - * @return 结果 - */ - int deleteTenantAgentInviteRegisterById(Long id); -} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteBizImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteBizImpl.java new file mode 100644 index 0000000..16f9b52 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteBizImpl.java @@ -0,0 +1,38 @@ +package com.ff.agent.service.impl; + +import com.ff.agent.domain.TenantAgentInvite; +import com.ff.agent.mapper.TenantAgentInviteMapper; +import com.ff.agent.service.ITenantAgentInviteBiz; +import com.ff.base.utils.NumberUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +/** + * 代理邀请注册Service接口 + * + * @author shi + * @date 2025-02-25 + */ +@Service +public class TenantAgentInviteBizImpl implements ITenantAgentInviteBiz { + + @Autowired + private TenantAgentInviteMapper tenantAgentInviteMapper; + + /** + * 获取邀请码 + * + * @return {@link String } + */ + @Override + public synchronized String getInviteCode() { + String inviteCode = NumberUtils.generateRandomCode(12); + while (!CollectionUtils.isEmpty(tenantAgentInviteMapper.selectTenantAgentInviteList(TenantAgentInvite.builder() + .inviteCode(inviteCode) + .build()))) { + inviteCode = NumberUtils.generateRandomCode(12); + } + return inviteCode; + } +} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterBizImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterBizImpl.java new file mode 100644 index 0000000..59cf44a --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterBizImpl.java @@ -0,0 +1,33 @@ +package com.ff.agent.service.impl; + +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; +import com.ff.agent.mapper.TenantAgentInviteRegisterBizMapper; +import com.ff.agent.service.ITenantAgentInviteRegisterBiz; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 代理邀请注册Service业务层处理 + * + * @author shi + * @date 2025-02-25 + */ +@Service +public class TenantAgentInviteRegisterBizImpl implements ITenantAgentInviteRegisterBiz { + @Autowired + private TenantAgentInviteRegisterBizMapper tenantAgentInviteRegisterBizMapper; + + /** + * 选择租户代理邀请注册列表dto + * + * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto + * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> + */ + @Override + public List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO) { + return tenantAgentInviteRegisterBizMapper.selectTenantAgentInviteRegisterListDTO(tenantAgentInviteRegisterDTO); + } + +} diff --git a/ff-game/src/main/java/com/ff/api/controller/ApiGameController.java b/ff-game/src/main/java/com/ff/api/controller/ApiGameController.java index f393575..d972121 100644 --- a/ff-game/src/main/java/com/ff/api/controller/ApiGameController.java +++ b/ff-game/src/main/java/com/ff/api/controller/ApiGameController.java @@ -16,8 +16,6 @@ import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.utils.StringUtils; import com.ff.base.utils.bean.BeanUtils; import com.ff.common.dto.GameBalanceExchange; -import com.ff.common.service.ITenantGameQuotaFlowService; -import com.ff.common.service.ITenantGameQuotaService; import com.ff.config.KeyConfig; import com.ff.game.api.IGamesService; import com.ff.game.api.exchange.StepProcessorFactory; @@ -28,6 +26,8 @@ import com.ff.game.dto.GameBettingDetailsDTO; import com.ff.game.service.*; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; +import com.ff.tenant.service.ITenantGameQuotaBiz; +import com.ff.tenant.service.ITenantGameQuotaService; import com.github.pagehelper.PageHelper; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -72,6 +72,8 @@ public class ApiGameController extends BaseController { @Resource private IGameService gameService; + @Resource + private IGameBiz gameBiz; @Resource @@ -82,6 +84,8 @@ public class ApiGameController extends BaseController { @Resource private ITenantGameQuotaService tenantGameQuotaService; + @Resource + private ITenantGameQuotaBiz tenantGameQuotaBiz; @Resource private IGameBettingDetailsService gameBettingDetailsService; @@ -95,6 +99,9 @@ public class ApiGameController extends BaseController { @Qualifier("threadPoolTaskExecutor") private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Resource + private IPlatformBiz platformBiz; + @Resource private IPlatformService platformService; @@ -109,9 +116,9 @@ public class ApiGameController extends BaseController { */ @PostMapping("/list") public AjaxResult list() { - List gameResponses = gameService.selectGameResponseList(); + List gameResponses = gameBiz.selectGameResponseList(); for (GameResponse gameResponse : gameResponses) { - Platform platform = platformService.get(gameResponse.getPlatformCode()); + Platform platform = platformBiz.get(gameResponse.getPlatformCode()); if (null == platform) { continue; } @@ -136,7 +143,7 @@ public class ApiGameController extends BaseController { Game game = gameService.selectGameByGameId(loginRequest.getGameId()); ApiException.notNull(game, ErrorCode.GAME_NOT_EXIST.getCode()); - Platform platform = platformService.get(game.getPlatformCode()); + Platform platform = platformBiz.get(game.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); IGamesService iGamesService = gamesService.get(platform.getPlatformCode() + Constants.SERVICE); ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode()); @@ -201,7 +208,7 @@ public class ApiGameController extends BaseController { TenantSecretKey tenantSecretKey = keyConfig.get(); - Platform platform = platformService.get(gameExchangeBalanceRequest.getPlatformCode()); + Platform platform = platformBiz.get(gameExchangeBalanceRequest.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(gameExchangeBalanceRequest.getCurrencyCode()); @@ -217,6 +224,24 @@ public class ApiGameController extends BaseController { } } ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode()); + BigDecimal quota = BigDecimal.ZERO; + //如果是扣钱提前扣 + if (TransferType.GAMES.getCode().equals(gameExchangeBalanceRequest.getTransferType())) { + quota = tenantGameQuotaService.gameBalanceExchange(GameBalanceExchange.builder() + .platformCode(gameExchangeBalanceRequest.getPlatformCode()) + .sourceId(gameExchangeBalanceRequest.getOrderId()) + .currencyCode(gameExchangeBalanceRequest.getCurrencyCode()) + .currency(targetCurrency) + .transferType(gameExchangeBalanceRequest.getTransferType()) + .amount(gameExchangeBalanceRequest.getAmount()) + .account(gameExchangeBalanceRequest.getAccount()) + .tenantKey(tenantSecretKey.getTenantKey()) + .systemCurrency(gameExchangeBalanceRequest.getCurrencyCode()) + .agentId(keyInfo.getCode()) + .agentKey(keyInfo.getKey()) + .build()); + } + // 获取用户信息 Member member = memberService.selectMemberByAccount(gameExchangeBalanceRequest.getAccount(), gameExchangeBalanceRequest.getCurrencyCode(), gameExchangeBalanceRequest.getPlatformCode()); @@ -327,7 +352,7 @@ public class ApiGameController extends BaseController { ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode()); - Platform platform = platformService.get(gameCreateFreeSpinRequest.getPlatformCode()); + Platform platform = platformBiz.get(gameCreateFreeSpinRequest.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(gameCreateFreeSpinRequest.getCurrencyCode()); @@ -414,7 +439,7 @@ public class ApiGameController extends BaseController { */ @PostMapping("/get/detail") public AjaxResult getDetail(@Validated @RequestBody GameGetDetailRequest gameGetDetailRequest) { - Platform platform = platformService.get(gameGetDetailRequest.getPlatformCode()); + Platform platform = platformBiz.get(gameGetDetailRequest.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(gameGetDetailRequest.getCurrencyCode()); @@ -478,7 +503,7 @@ public class ApiGameController extends BaseController { // .systemCurrency(gameKickMemeberRequest.getCurrencyCode()).build()); // ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode()); - Platform platform = platformService.get(gameKickMemeberRequest.getPlatformCode()); + Platform platform = platformBiz.get(gameKickMemeberRequest.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(gameKickMemeberRequest.getCurrencyCode()); @@ -521,7 +546,7 @@ public class ApiGameController extends BaseController { // .systemCurrency(gameKickMemeberAllRequest.getCurrencyCode()).build()); // // ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode()); - Platform platform = platformService.get(gameKickMemeberAllRequest.getPlatformCode()); + Platform platform = platformBiz.get(gameKickMemeberAllRequest.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(gameKickMemeberAllRequest.getCurrencyCode()); @@ -607,7 +632,7 @@ public class ApiGameController extends BaseController { // .systemCurrency(gameGetFreeSpinDashflowRequest.getCurrencyCode()).build()); // ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode()); - Platform platform = platformService.get(request.getPlatformCode()); + Platform platform = platformBiz.get(request.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(request.getCurrencyCode()); @@ -787,7 +812,7 @@ public class ApiGameController extends BaseController { //GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(game.getPlatformId()); //ApiException.notNull(gamePlatform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); - Platform platform = platformService.get(game.getPlatformCode()); + Platform platform = platformBiz.get(game.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); IGamesService iGamesService = gamesService.get(platform.getPlatformCode() + Constants.SERVICE); diff --git a/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java index 56bd037..8804988 100644 --- a/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java +++ b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java @@ -23,8 +23,10 @@ import com.ff.game.api.request.MemberInfoRequestDTO; import com.ff.game.api.request.MemberInfoResponseDTO; import com.ff.game.domain.KeyInfo; import com.ff.game.domain.Platform; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import com.ff.member.domain.Member; +import com.ff.member.service.IMemberBiz; import com.ff.member.service.IMemberService; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -77,6 +79,10 @@ public class ApiMemberController extends BaseController { @Resource private IPlatformService platformService; + @Autowired + private IPlatformBiz platformBiz; + @Autowired + private IMemberBiz memberBiz; /** * 创建成员 @@ -93,7 +99,7 @@ public class ApiMemberController extends BaseController { TenantSecretKey tenantSecretKey = keyConfig.get(); - Platform platform = platformService.get(memberCreateApiRequest.getPlatformCode()); + Platform platform = platformBiz.get(memberCreateApiRequest.getPlatformCode()); ApiException.notNull(platform, ErrorCode.CURRENCY_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(memberCreateApiRequest.getCurrencyCode()); ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode()); @@ -109,7 +115,7 @@ public class ApiMemberController extends BaseController { } ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode()); - String gameAccount =memberService.getMemberGameAccount(memberCreateApiRequest.getPlatformCode(), tenantSecretKey.getTenantSn()); + String gameAccount = memberBiz.getMemberGameAccount(memberCreateApiRequest.getPlatformCode(), tenantSecretKey.getTenantSn()); // 获取用户信息 @@ -146,8 +152,6 @@ public class ApiMemberController extends BaseController { Assert.isTrue(result, "建立游戏账号失败"); - - return toAjax(Boolean.TRUE); } @@ -165,7 +169,7 @@ public class ApiMemberController extends BaseController { ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode()); - Platform platform = platformService.get(request.getPlatformCode()); + Platform platform = platformBiz.get(request.getPlatformCode()); ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); String targetCurrency = platform.getCurrencyInfo().get(request.getCurrencyCode()); @@ -220,7 +224,7 @@ public class ApiMemberController extends BaseController { List keys = new ArrayList<>(); for (GamePlatforms platformEnum : GamePlatforms.values()) { - Platform platform = platformService.get(platformEnum.getCode()); + Platform platform = platformBiz.get(platformEnum.getCode()); String targetCurrency = platform.getCurrencyInfo().get(memberInfoAllApiRequest.getCurrencyCode()); if (StringUtils.isEmpty(targetCurrency)) { continue; diff --git a/ff-game/src/main/java/com/ff/api/controller/ApiTenantController.java b/ff-game/src/main/java/com/ff/api/controller/ApiTenantController.java index c9d245c..c1939a7 100644 --- a/ff-game/src/main/java/com/ff/api/controller/ApiTenantController.java +++ b/ff-game/src/main/java/com/ff/api/controller/ApiTenantController.java @@ -6,11 +6,11 @@ import com.ff.api.response.TenantInfoResponse; import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; import com.ff.base.enums.QuotaType; +import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.utils.bean.BeanUtils; import com.ff.common.domain.TenantGameQuota; -import com.ff.base.system.domain.TenantSecretKey; -import com.ff.common.service.ITenantGameQuotaService; import com.ff.config.KeyConfig; +import com.ff.tenant.service.ITenantGameQuotaService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -30,7 +30,6 @@ import javax.annotation.Resource; @Slf4j public class ApiTenantController extends BaseController { - @Resource private ITenantGameQuotaService tenantGameQuotaService; @Resource @@ -45,8 +44,8 @@ public class ApiTenantController extends BaseController { public AjaxResult info() { TenantSecretKey tenantSecretKey = keyConfig.get(); TenantGameQuota tenantGameQuota = tenantGameQuotaService.selectTenantGameQuotaByTenantKey(tenantSecretKey.getTenantKey(), QuotaType.BALANCE.getCode()); - TenantInfoResponse tenantInfoResponse= new TenantInfoResponse(); - BeanUtils.copyProperties(tenantGameQuota,tenantInfoResponse); + TenantInfoResponse tenantInfoResponse = new TenantInfoResponse(); + BeanUtils.copyProperties(tenantGameQuota, tenantInfoResponse); return AjaxResult.success(tenantInfoResponse); } diff --git a/ff-base/src/main/java/com/ff/base/annotation/Anonymous.java b/ff-game/src/main/java/com/ff/base/annotation/Anonymous.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/Anonymous.java rename to ff-game/src/main/java/com/ff/base/annotation/Anonymous.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/DataScope.java b/ff-game/src/main/java/com/ff/base/annotation/DataScope.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/DataScope.java rename to ff-game/src/main/java/com/ff/base/annotation/DataScope.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/DataSource.java b/ff-game/src/main/java/com/ff/base/annotation/DataSource.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/DataSource.java rename to ff-game/src/main/java/com/ff/base/annotation/DataSource.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/Excel.java b/ff-game/src/main/java/com/ff/base/annotation/Excel.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/Excel.java rename to ff-game/src/main/java/com/ff/base/annotation/Excel.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/Excels.java b/ff-game/src/main/java/com/ff/base/annotation/Excels.java similarity index 90% rename from ff-base/src/main/java/com/ff/base/annotation/Excels.java rename to ff-game/src/main/java/com/ff/base/annotation/Excels.java index 8a1e940..b7ad024 100644 --- a/ff-base/src/main/java/com/ff/base/annotation/Excels.java +++ b/ff-game/src/main/java/com/ff/base/annotation/Excels.java @@ -1,7 +1,5 @@ package com.ff.base.annotation; -import com.ff.base.annotation.Excel; - import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/ff-base/src/main/java/com/ff/base/annotation/Log.java b/ff-game/src/main/java/com/ff/base/annotation/Log.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/Log.java rename to ff-game/src/main/java/com/ff/base/annotation/Log.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/RateLimiter.java b/ff-game/src/main/java/com/ff/base/annotation/RateLimiter.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/RateLimiter.java rename to ff-game/src/main/java/com/ff/base/annotation/RateLimiter.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/RepeatSubmit.java b/ff-game/src/main/java/com/ff/base/annotation/RepeatSubmit.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/RepeatSubmit.java rename to ff-game/src/main/java/com/ff/base/annotation/RepeatSubmit.java diff --git a/ff-base/src/main/java/com/ff/base/annotation/Sensitive.java b/ff-game/src/main/java/com/ff/base/annotation/Sensitive.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/annotation/Sensitive.java rename to ff-game/src/main/java/com/ff/base/annotation/Sensitive.java diff --git a/ff-base/src/main/java/com/ff/base/aspectj/DataScopeAspect.java b/ff-game/src/main/java/com/ff/base/aspectj/DataScopeAspect.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/aspectj/DataScopeAspect.java rename to ff-game/src/main/java/com/ff/base/aspectj/DataScopeAspect.java index db84520..4ed57d7 100644 --- a/ff-base/src/main/java/com/ff/base/aspectj/DataScopeAspect.java +++ b/ff-game/src/main/java/com/ff/base/aspectj/DataScopeAspect.java @@ -2,13 +2,13 @@ package com.ff.base.aspectj; import com.ff.base.annotation.DataScope; import com.ff.base.core.domain.BaseEntity; -import com.ff.base.system.domain.SysRole; -import com.ff.base.system.domain.SysUser; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.core.text.Convert; +import com.ff.base.security.context.PermissionContextHolder; +import com.ff.base.system.domain.SysRole; +import com.ff.base.system.domain.SysUser; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.StringUtils; -import com.ff.base.security.context.PermissionContextHolder; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; diff --git a/ff-base/src/main/java/com/ff/base/aspectj/DataSourceAspect.java b/ff-game/src/main/java/com/ff/base/aspectj/DataSourceAspect.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/aspectj/DataSourceAspect.java rename to ff-game/src/main/java/com/ff/base/aspectj/DataSourceAspect.java index ead00f0..1417a89 100644 --- a/ff-base/src/main/java/com/ff/base/aspectj/DataSourceAspect.java +++ b/ff-game/src/main/java/com/ff/base/aspectj/DataSourceAspect.java @@ -1,8 +1,8 @@ package com.ff.base.aspectj; import com.ff.base.annotation.DataSource; -import com.ff.base.utils.StringUtils; import com.ff.base.datasource.DynamicDataSourceContextHolder; +import com.ff.base.utils.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; diff --git a/ff-base/src/main/java/com/ff/base/aspectj/LogAspect.java b/ff-game/src/main/java/com/ff/base/aspectj/LogAspect.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/aspectj/LogAspect.java rename to ff-game/src/main/java/com/ff/base/aspectj/LogAspect.java index cf3d912..4e86e41 100644 --- a/ff-base/src/main/java/com/ff/base/aspectj/LogAspect.java +++ b/ff-game/src/main/java/com/ff/base/aspectj/LogAspect.java @@ -2,18 +2,18 @@ package com.ff.base.aspectj; import com.alibaba.fastjson2.JSON; import com.ff.base.annotation.Log; -import com.ff.base.system.domain.SysUser; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.enums.BusinessStatus; import com.ff.base.enums.HttpMethod; import com.ff.base.filter.PropertyPreExcludeFilter; +import com.ff.base.manager.AsyncManager; +import com.ff.base.manager.factory.AsyncFactory; +import com.ff.base.system.domain.SysOperLog; +import com.ff.base.system.domain.SysUser; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.ServletUtils; import com.ff.base.utils.StringUtils; import com.ff.base.utils.ip.IpUtils; -import com.ff.base.manager.AsyncManager; -import com.ff.base.manager.factory.AsyncFactory; -import com.ff.base.system.domain.SysOperLog; import org.apache.commons.lang3.ArrayUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; diff --git a/ff-base/src/main/java/com/ff/base/aspectj/RateLimiterAspect.java b/ff-game/src/main/java/com/ff/base/aspectj/RateLimiterAspect.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/aspectj/RateLimiterAspect.java rename to ff-game/src/main/java/com/ff/base/aspectj/RateLimiterAspect.java diff --git a/ff-base/src/main/java/com/ff/base/config/ApplicationConfig.java b/ff-game/src/main/java/com/ff/base/config/ApplicationConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/ApplicationConfig.java rename to ff-game/src/main/java/com/ff/base/config/ApplicationConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/AsyncConfig.java b/ff-game/src/main/java/com/ff/base/config/AsyncConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/AsyncConfig.java rename to ff-game/src/main/java/com/ff/base/config/AsyncConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/CaptchaConfig.java b/ff-game/src/main/java/com/ff/base/config/CaptchaConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/CaptchaConfig.java rename to ff-game/src/main/java/com/ff/base/config/CaptchaConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/DruidConfig.java b/ff-game/src/main/java/com/ff/base/config/DruidConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/DruidConfig.java rename to ff-game/src/main/java/com/ff/base/config/DruidConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/FFConfig.java b/ff-game/src/main/java/com/ff/base/config/FFConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/FFConfig.java rename to ff-game/src/main/java/com/ff/base/config/FFConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/FastJson2JsonRedisSerializer.java b/ff-game/src/main/java/com/ff/base/config/FastJson2JsonRedisSerializer.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/FastJson2JsonRedisSerializer.java rename to ff-game/src/main/java/com/ff/base/config/FastJson2JsonRedisSerializer.java diff --git a/ff-base/src/main/java/com/ff/base/config/FilterConfig.java b/ff-game/src/main/java/com/ff/base/config/FilterConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/FilterConfig.java rename to ff-game/src/main/java/com/ff/base/config/FilterConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/I18nConfig.java b/ff-game/src/main/java/com/ff/base/config/I18nConfig.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/config/I18nConfig.java rename to ff-game/src/main/java/com/ff/base/config/I18nConfig.java index 05b77d0..0791228 100644 --- a/ff-base/src/main/java/com/ff/base/config/I18nConfig.java +++ b/ff-game/src/main/java/com/ff/base/config/I18nConfig.java @@ -10,8 +10,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; -import java.lang.reflect.Field; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; diff --git a/ff-base/src/main/java/com/ff/base/config/JacksonConfig.java b/ff-game/src/main/java/com/ff/base/config/JacksonConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/JacksonConfig.java rename to ff-game/src/main/java/com/ff/base/config/JacksonConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/KaptchaTextCreator.java b/ff-game/src/main/java/com/ff/base/config/KaptchaTextCreator.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/KaptchaTextCreator.java rename to ff-game/src/main/java/com/ff/base/config/KaptchaTextCreator.java diff --git a/ff-base/src/main/java/com/ff/base/config/MyBatisConfig.java b/ff-game/src/main/java/com/ff/base/config/MyBatisConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/MyBatisConfig.java rename to ff-game/src/main/java/com/ff/base/config/MyBatisConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/RedisConfig.java b/ff-game/src/main/java/com/ff/base/config/RedisConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/RedisConfig.java rename to ff-game/src/main/java/com/ff/base/config/RedisConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java b/ff-game/src/main/java/com/ff/base/config/ResourcesConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java rename to ff-game/src/main/java/com/ff/base/config/ResourcesConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/SecurityConfig.java b/ff-game/src/main/java/com/ff/base/config/SecurityConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/SecurityConfig.java rename to ff-game/src/main/java/com/ff/base/config/SecurityConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/ServerConfig.java b/ff-game/src/main/java/com/ff/base/config/ServerConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/ServerConfig.java rename to ff-game/src/main/java/com/ff/base/config/ServerConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/ThreadPoolConfig.java b/ff-game/src/main/java/com/ff/base/config/ThreadPoolConfig.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/ThreadPoolConfig.java rename to ff-game/src/main/java/com/ff/base/config/ThreadPoolConfig.java diff --git a/ff-base/src/main/java/com/ff/base/config/properties/DruidProperties.java b/ff-game/src/main/java/com/ff/base/config/properties/DruidProperties.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/properties/DruidProperties.java rename to ff-game/src/main/java/com/ff/base/config/properties/DruidProperties.java diff --git a/ff-base/src/main/java/com/ff/base/config/properties/PermitAllUrlProperties.java b/ff-game/src/main/java/com/ff/base/config/properties/PermitAllUrlProperties.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/properties/PermitAllUrlProperties.java rename to ff-game/src/main/java/com/ff/base/config/properties/PermitAllUrlProperties.java diff --git a/ff-base/src/main/java/com/ff/base/config/serializer/SensitiveJsonSerializer.java b/ff-game/src/main/java/com/ff/base/config/serializer/SensitiveJsonSerializer.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/config/serializer/SensitiveJsonSerializer.java rename to ff-game/src/main/java/com/ff/base/config/serializer/SensitiveJsonSerializer.java diff --git a/ff-base/src/main/java/com/ff/base/constant/BusinessConstants.java b/ff-game/src/main/java/com/ff/base/constant/BusinessConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/BusinessConstants.java rename to ff-game/src/main/java/com/ff/base/constant/BusinessConstants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/CacheConstants.java b/ff-game/src/main/java/com/ff/base/constant/CacheConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/CacheConstants.java rename to ff-game/src/main/java/com/ff/base/constant/CacheConstants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/CacheLockConstants.java b/ff-game/src/main/java/com/ff/base/constant/CacheLockConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/CacheLockConstants.java rename to ff-game/src/main/java/com/ff/base/constant/CacheLockConstants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/ConfigConstants.java b/ff-game/src/main/java/com/ff/base/constant/ConfigConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/ConfigConstants.java rename to ff-game/src/main/java/com/ff/base/constant/ConfigConstants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/Constants.java b/ff-game/src/main/java/com/ff/base/constant/Constants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/Constants.java rename to ff-game/src/main/java/com/ff/base/constant/Constants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/GenConstants.java b/ff-game/src/main/java/com/ff/base/constant/GenConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/GenConstants.java rename to ff-game/src/main/java/com/ff/base/constant/GenConstants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/HttpStatus.java b/ff-game/src/main/java/com/ff/base/constant/HttpStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/HttpStatus.java rename to ff-game/src/main/java/com/ff/base/constant/HttpStatus.java diff --git a/ff-base/src/main/java/com/ff/base/constant/ScheduleConstants.java b/ff-game/src/main/java/com/ff/base/constant/ScheduleConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/ScheduleConstants.java rename to ff-game/src/main/java/com/ff/base/constant/ScheduleConstants.java diff --git a/ff-base/src/main/java/com/ff/base/constant/UserConstants.java b/ff-game/src/main/java/com/ff/base/constant/UserConstants.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/constant/UserConstants.java rename to ff-game/src/main/java/com/ff/base/constant/UserConstants.java diff --git a/ff-base/src/main/java/com/ff/base/core/controller/BaseController.java b/ff-game/src/main/java/com/ff/base/core/controller/BaseController.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/controller/BaseController.java rename to ff-game/src/main/java/com/ff/base/core/controller/BaseController.java index b28e6e1..583bf0c 100644 --- a/ff-base/src/main/java/com/ff/base/core/controller/BaseController.java +++ b/ff-game/src/main/java/com/ff/base/core/controller/BaseController.java @@ -1,7 +1,5 @@ package com.ff.base.core.controller; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; import com.ff.base.constant.HttpStatus; import com.ff.base.core.domain.AjaxResult; import com.ff.base.core.domain.model.LoginUser; @@ -13,6 +11,8 @@ import com.ff.base.utils.PageUtils; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.StringUtils; import com.ff.base.utils.sql.SqlUtil; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.WebDataBinder; diff --git a/ff-base/src/main/java/com/ff/base/core/domain/AjaxResult.java b/ff-game/src/main/java/com/ff/base/core/domain/AjaxResult.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/AjaxResult.java rename to ff-game/src/main/java/com/ff/base/core/domain/AjaxResult.java diff --git a/ff-base/src/main/java/com/ff/base/core/domain/TreeEntity.java b/ff-game/src/main/java/com/ff/base/core/domain/TreeEntity.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/TreeEntity.java rename to ff-game/src/main/java/com/ff/base/core/domain/TreeEntity.java diff --git a/ff-base/src/main/java/com/ff/base/core/domain/TreeSelect.java b/ff-game/src/main/java/com/ff/base/core/domain/TreeSelect.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/TreeSelect.java rename to ff-game/src/main/java/com/ff/base/core/domain/TreeSelect.java diff --git a/ff-base/src/main/java/com/ff/base/core/domain/model/LoginBody.java b/ff-game/src/main/java/com/ff/base/core/domain/model/LoginBody.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/model/LoginBody.java rename to ff-game/src/main/java/com/ff/base/core/domain/model/LoginBody.java diff --git a/ff-base/src/main/java/com/ff/base/core/domain/model/LoginForm.java b/ff-game/src/main/java/com/ff/base/core/domain/model/LoginForm.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/model/LoginForm.java rename to ff-game/src/main/java/com/ff/base/core/domain/model/LoginForm.java diff --git a/ff-base/src/main/java/com/ff/base/core/domain/model/LoginUser.java b/ff-game/src/main/java/com/ff/base/core/domain/model/LoginUser.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/model/LoginUser.java rename to ff-game/src/main/java/com/ff/base/core/domain/model/LoginUser.java diff --git a/ff-base/src/main/java/com/ff/base/core/domain/model/RegisterBody.java b/ff-game/src/main/java/com/ff/base/core/domain/model/RegisterBody.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/domain/model/RegisterBody.java rename to ff-game/src/main/java/com/ff/base/core/domain/model/RegisterBody.java diff --git a/ff-base/src/main/java/com/ff/base/core/page/PageDomain.java b/ff-game/src/main/java/com/ff/base/core/page/PageDomain.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/page/PageDomain.java rename to ff-game/src/main/java/com/ff/base/core/page/PageDomain.java diff --git a/ff-base/src/main/java/com/ff/base/core/page/TableDataInfo.java b/ff-game/src/main/java/com/ff/base/core/page/TableDataInfo.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/page/TableDataInfo.java rename to ff-game/src/main/java/com/ff/base/core/page/TableDataInfo.java diff --git a/ff-base/src/main/java/com/ff/base/core/page/TableSupport.java b/ff-game/src/main/java/com/ff/base/core/page/TableSupport.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/page/TableSupport.java rename to ff-game/src/main/java/com/ff/base/core/page/TableSupport.java diff --git a/ff-base/src/main/java/com/ff/base/core/redis/RedisCache.java b/ff-game/src/main/java/com/ff/base/core/redis/RedisCache.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/redis/RedisCache.java rename to ff-game/src/main/java/com/ff/base/core/redis/RedisCache.java diff --git a/ff-base/src/main/java/com/ff/base/core/text/CharsetKit.java b/ff-game/src/main/java/com/ff/base/core/text/CharsetKit.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/text/CharsetKit.java rename to ff-game/src/main/java/com/ff/base/core/text/CharsetKit.java diff --git a/ff-base/src/main/java/com/ff/base/core/text/Convert.java b/ff-game/src/main/java/com/ff/base/core/text/Convert.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/text/Convert.java rename to ff-game/src/main/java/com/ff/base/core/text/Convert.java diff --git a/ff-base/src/main/java/com/ff/base/core/text/StrFormatter.java b/ff-game/src/main/java/com/ff/base/core/text/StrFormatter.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/core/text/StrFormatter.java rename to ff-game/src/main/java/com/ff/base/core/text/StrFormatter.java diff --git a/ff-base/src/main/java/com/ff/base/datasource/DynamicDataSource.java b/ff-game/src/main/java/com/ff/base/datasource/DynamicDataSource.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/datasource/DynamicDataSource.java rename to ff-game/src/main/java/com/ff/base/datasource/DynamicDataSource.java diff --git a/ff-base/src/main/java/com/ff/base/datasource/DynamicDataSourceContextHolder.java b/ff-game/src/main/java/com/ff/base/datasource/DynamicDataSourceContextHolder.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/datasource/DynamicDataSourceContextHolder.java rename to ff-game/src/main/java/com/ff/base/datasource/DynamicDataSourceContextHolder.java diff --git a/ff-base/src/main/java/com/ff/base/decorator/ContextCopyingDecorator.java b/ff-game/src/main/java/com/ff/base/decorator/ContextCopyingDecorator.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/decorator/ContextCopyingDecorator.java rename to ff-game/src/main/java/com/ff/base/decorator/ContextCopyingDecorator.java diff --git a/ff-base/src/main/java/com/ff/base/enums/BusinessStatus.java b/ff-game/src/main/java/com/ff/base/enums/BusinessStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/BusinessStatus.java rename to ff-game/src/main/java/com/ff/base/enums/BusinessStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/BusinessType.java b/ff-game/src/main/java/com/ff/base/enums/BusinessType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/BusinessType.java rename to ff-game/src/main/java/com/ff/base/enums/BusinessType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java b/ff-game/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java rename to ff-game/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java b/ff-game/src/main/java/com/ff/base/enums/CommissionSourceType.java similarity index 95% rename from ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java rename to ff-game/src/main/java/com/ff/base/enums/CommissionSourceType.java index 414b256..734a16e 100644 --- a/ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java +++ b/ff-game/src/main/java/com/ff/base/enums/CommissionSourceType.java @@ -1,6 +1,5 @@ package com.ff.base.enums; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/CommissionType.java b/ff-game/src/main/java/com/ff/base/enums/CommissionType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/CommissionType.java rename to ff-game/src/main/java/com/ff/base/enums/CommissionType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/DataSourceType.java b/ff-game/src/main/java/com/ff/base/enums/DataSourceType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/DataSourceType.java rename to ff-game/src/main/java/com/ff/base/enums/DataSourceType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/DesensitizedType.java b/ff-game/src/main/java/com/ff/base/enums/DesensitizedType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/DesensitizedType.java rename to ff-game/src/main/java/com/ff/base/enums/DesensitizedType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/DomainType.java b/ff-game/src/main/java/com/ff/base/enums/DomainType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/DomainType.java rename to ff-game/src/main/java/com/ff/base/enums/DomainType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/ErrorCode.java b/ff-game/src/main/java/com/ff/base/enums/ErrorCode.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/ErrorCode.java rename to ff-game/src/main/java/com/ff/base/enums/ErrorCode.java diff --git a/ff-base/src/main/java/com/ff/base/enums/FBSportsType.java b/ff-game/src/main/java/com/ff/base/enums/FBSportsType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/FBSportsType.java rename to ff-game/src/main/java/com/ff/base/enums/FBSportsType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/FCGameType.java b/ff-game/src/main/java/com/ff/base/enums/FCGameType.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/enums/FCGameType.java rename to ff-game/src/main/java/com/ff/base/enums/FCGameType.java index 0fb07ec..99f86d4 100644 --- a/ff-base/src/main/java/com/ff/base/enums/FCGameType.java +++ b/ff-game/src/main/java/com/ff/base/enums/FCGameType.java @@ -3,7 +3,6 @@ package com.ff.base.enums; import lombok.Getter; -import java.util.HashMap; import java.util.Optional; import java.util.stream.Stream; diff --git a/ff-base/src/main/java/com/ff/base/enums/FCTransferType.java b/ff-game/src/main/java/com/ff/base/enums/FCTransferType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/FCTransferType.java rename to ff-game/src/main/java/com/ff/base/enums/FCTransferType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/FreeStatus.java b/ff-game/src/main/java/com/ff/base/enums/FreeStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/FreeStatus.java rename to ff-game/src/main/java/com/ff/base/enums/FreeStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/GPXGameType.java b/ff-game/src/main/java/com/ff/base/enums/GPXGameType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/GPXGameType.java rename to ff-game/src/main/java/com/ff/base/enums/GPXGameType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/GameExchangeStep.java b/ff-game/src/main/java/com/ff/base/enums/GameExchangeStep.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/enums/GameExchangeStep.java rename to ff-game/src/main/java/com/ff/base/enums/GameExchangeStep.java index 31257c4..fa1da7c 100644 --- a/ff-base/src/main/java/com/ff/base/enums/GameExchangeStep.java +++ b/ff-game/src/main/java/com/ff/base/enums/GameExchangeStep.java @@ -2,7 +2,6 @@ package com.ff.base.enums; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/GameExchangeStepStatus.java b/ff-game/src/main/java/com/ff/base/enums/GameExchangeStepStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/GameExchangeStepStatus.java rename to ff-game/src/main/java/com/ff/base/enums/GameExchangeStepStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/GameMemberStatus.java b/ff-game/src/main/java/com/ff/base/enums/GameMemberStatus.java similarity index 95% rename from ff-base/src/main/java/com/ff/base/enums/GameMemberStatus.java rename to ff-game/src/main/java/com/ff/base/enums/GameMemberStatus.java index bbf2486..4f96779 100644 --- a/ff-base/src/main/java/com/ff/base/enums/GameMemberStatus.java +++ b/ff-game/src/main/java/com/ff/base/enums/GameMemberStatus.java @@ -1,6 +1,5 @@ package com.ff.base.enums; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/GamePlatforms.java b/ff-game/src/main/java/com/ff/base/enums/GamePlatforms.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/GamePlatforms.java rename to ff-game/src/main/java/com/ff/base/enums/GamePlatforms.java diff --git a/ff-base/src/main/java/com/ff/base/enums/GameStatus.java b/ff-game/src/main/java/com/ff/base/enums/GameStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/GameStatus.java rename to ff-game/src/main/java/com/ff/base/enums/GameStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/HttpMethod.java b/ff-game/src/main/java/com/ff/base/enums/HttpMethod.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/HttpMethod.java rename to ff-game/src/main/java/com/ff/base/enums/HttpMethod.java diff --git a/ff-base/src/main/java/com/ff/base/enums/IngressType.java b/ff-game/src/main/java/com/ff/base/enums/IngressType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/IngressType.java rename to ff-game/src/main/java/com/ff/base/enums/IngressType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/InviteType.java b/ff-game/src/main/java/com/ff/base/enums/InviteType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/InviteType.java rename to ff-game/src/main/java/com/ff/base/enums/InviteType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/InviterRegisterStatus.java b/ff-game/src/main/java/com/ff/base/enums/InviterRegisterStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/InviterRegisterStatus.java rename to ff-game/src/main/java/com/ff/base/enums/InviterRegisterStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/JILIGameType.java b/ff-game/src/main/java/com/ff/base/enums/JILIGameType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/JILIGameType.java rename to ff-game/src/main/java/com/ff/base/enums/JILIGameType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/KMGameType.java b/ff-game/src/main/java/com/ff/base/enums/KMGameType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/KMGameType.java rename to ff-game/src/main/java/com/ff/base/enums/KMGameType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/LimitType.java b/ff-game/src/main/java/com/ff/base/enums/LimitType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/LimitType.java rename to ff-game/src/main/java/com/ff/base/enums/LimitType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/LoginType.java b/ff-game/src/main/java/com/ff/base/enums/LoginType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/LoginType.java rename to ff-game/src/main/java/com/ff/base/enums/LoginType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/MeiTianGameType.java b/ff-game/src/main/java/com/ff/base/enums/MeiTianGameType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/MeiTianGameType.java rename to ff-game/src/main/java/com/ff/base/enums/MeiTianGameType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/MemberStatus.java b/ff-game/src/main/java/com/ff/base/enums/MemberStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/MemberStatus.java rename to ff-game/src/main/java/com/ff/base/enums/MemberStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/NGGameType.java b/ff-game/src/main/java/com/ff/base/enums/NGGameType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/NGGameType.java rename to ff-game/src/main/java/com/ff/base/enums/NGGameType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/NGPlatforms.java b/ff-game/src/main/java/com/ff/base/enums/NGPlatforms.java similarity index 94% rename from ff-base/src/main/java/com/ff/base/enums/NGPlatforms.java rename to ff-game/src/main/java/com/ff/base/enums/NGPlatforms.java index 493017f..7facd60 100644 --- a/ff-base/src/main/java/com/ff/base/enums/NGPlatforms.java +++ b/ff-game/src/main/java/com/ff/base/enums/NGPlatforms.java @@ -2,12 +2,9 @@ package com.ff.base.enums; import lombok.Getter; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * ng平台 支持游戏 diff --git a/ff-base/src/main/java/com/ff/base/enums/NGSettlementStatusEnum.java b/ff-game/src/main/java/com/ff/base/enums/NGSettlementStatusEnum.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/NGSettlementStatusEnum.java rename to ff-game/src/main/java/com/ff/base/enums/NGSettlementStatusEnum.java diff --git a/ff-base/src/main/java/com/ff/base/enums/NGTransferType.java b/ff-game/src/main/java/com/ff/base/enums/NGTransferType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/NGTransferType.java rename to ff-game/src/main/java/com/ff/base/enums/NGTransferType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/OperationType.java b/ff-game/src/main/java/com/ff/base/enums/OperationType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/OperationType.java rename to ff-game/src/main/java/com/ff/base/enums/OperationType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/OperatorType.java b/ff-game/src/main/java/com/ff/base/enums/OperatorType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/OperatorType.java rename to ff-game/src/main/java/com/ff/base/enums/OperatorType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/PGTBetStatus.java b/ff-game/src/main/java/com/ff/base/enums/PGTBetStatus.java similarity index 95% rename from ff-base/src/main/java/com/ff/base/enums/PGTBetStatus.java rename to ff-game/src/main/java/com/ff/base/enums/PGTBetStatus.java index f5537c2..6743692 100644 --- a/ff-base/src/main/java/com/ff/base/enums/PGTBetStatus.java +++ b/ff-game/src/main/java/com/ff/base/enums/PGTBetStatus.java @@ -1,7 +1,6 @@ package com.ff.base.enums; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/PGTGameType.java b/ff-game/src/main/java/com/ff/base/enums/PGTGameType.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/enums/PGTGameType.java rename to ff-game/src/main/java/com/ff/base/enums/PGTGameType.java index 94ebdb1..38ab970 100644 --- a/ff-base/src/main/java/com/ff/base/enums/PGTGameType.java +++ b/ff-game/src/main/java/com/ff/base/enums/PGTGameType.java @@ -1,7 +1,6 @@ package com.ff.base.enums; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; import java.util.Optional; diff --git a/ff-base/src/main/java/com/ff/base/enums/PGTPayoutStatus.java b/ff-game/src/main/java/com/ff/base/enums/PGTPayoutStatus.java similarity index 91% rename from ff-base/src/main/java/com/ff/base/enums/PGTPayoutStatus.java rename to ff-game/src/main/java/com/ff/base/enums/PGTPayoutStatus.java index 7c62692..3db1a1a 100644 --- a/ff-base/src/main/java/com/ff/base/enums/PGTPayoutStatus.java +++ b/ff-game/src/main/java/com/ff/base/enums/PGTPayoutStatus.java @@ -1,8 +1,6 @@ package com.ff.base.enums; -import com.dtflys.forest.annotation.Get; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/PGXBetRecordStatus.java b/ff-game/src/main/java/com/ff/base/enums/PGXBetRecordStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/PGXBetRecordStatus.java rename to ff-game/src/main/java/com/ff/base/enums/PGXBetRecordStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/PGXTransactionStatus.java b/ff-game/src/main/java/com/ff/base/enums/PGXTransactionStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/PGXTransactionStatus.java rename to ff-game/src/main/java/com/ff/base/enums/PGXTransactionStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/PGXTransferType.java b/ff-game/src/main/java/com/ff/base/enums/PGXTransferType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/PGXTransferType.java rename to ff-game/src/main/java/com/ff/base/enums/PGXTransferType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/PlatformHomeType.java b/ff-game/src/main/java/com/ff/base/enums/PlatformHomeType.java similarity index 95% rename from ff-base/src/main/java/com/ff/base/enums/PlatformHomeType.java rename to ff-game/src/main/java/com/ff/base/enums/PlatformHomeType.java index 2f151d1..aac017d 100644 --- a/ff-base/src/main/java/com/ff/base/enums/PlatformHomeType.java +++ b/ff-game/src/main/java/com/ff/base/enums/PlatformHomeType.java @@ -1,6 +1,5 @@ package com.ff.base.enums; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/PlatformType.java b/ff-game/src/main/java/com/ff/base/enums/PlatformType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/PlatformType.java rename to ff-game/src/main/java/com/ff/base/enums/PlatformType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/QuotaType.java b/ff-game/src/main/java/com/ff/base/enums/QuotaType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/QuotaType.java rename to ff-game/src/main/java/com/ff/base/enums/QuotaType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/SAGameType.java b/ff-game/src/main/java/com/ff/base/enums/SAGameType.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/enums/SAGameType.java rename to ff-game/src/main/java/com/ff/base/enums/SAGameType.java index 2171f23..be4d9e7 100644 --- a/ff-base/src/main/java/com/ff/base/enums/SAGameType.java +++ b/ff-game/src/main/java/com/ff/base/enums/SAGameType.java @@ -1,7 +1,6 @@ package com.ff.base.enums; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.Getter; /** diff --git a/ff-base/src/main/java/com/ff/base/enums/SettlementStatusEnum.java b/ff-game/src/main/java/com/ff/base/enums/SettlementStatusEnum.java similarity index 94% rename from ff-base/src/main/java/com/ff/base/enums/SettlementStatusEnum.java rename to ff-game/src/main/java/com/ff/base/enums/SettlementStatusEnum.java index 5a90261..c6793f5 100644 --- a/ff-base/src/main/java/com/ff/base/enums/SettlementStatusEnum.java +++ b/ff-game/src/main/java/com/ff/base/enums/SettlementStatusEnum.java @@ -3,8 +3,6 @@ package com.ff.base.enums; import lombok.AllArgsConstructor; import lombok.Getter; -import java.util.Arrays; - /** * 结算状态枚举 * diff --git a/ff-base/src/main/java/com/ff/base/enums/Status.java b/ff-game/src/main/java/com/ff/base/enums/Status.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/Status.java rename to ff-game/src/main/java/com/ff/base/enums/Status.java diff --git a/ff-base/src/main/java/com/ff/base/enums/StatusType.java b/ff-game/src/main/java/com/ff/base/enums/StatusType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/StatusType.java rename to ff-game/src/main/java/com/ff/base/enums/StatusType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/TenantQuotaType.java b/ff-game/src/main/java/com/ff/base/enums/TenantQuotaType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/TenantQuotaType.java rename to ff-game/src/main/java/com/ff/base/enums/TenantQuotaType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/TenantType.java b/ff-game/src/main/java/com/ff/base/enums/TenantType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/TenantType.java rename to ff-game/src/main/java/com/ff/base/enums/TenantType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/TransferType.java b/ff-game/src/main/java/com/ff/base/enums/TransferType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/TransferType.java rename to ff-game/src/main/java/com/ff/base/enums/TransferType.java diff --git a/ff-base/src/main/java/com/ff/base/enums/UserStatus.java b/ff-game/src/main/java/com/ff/base/enums/UserStatus.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/UserStatus.java rename to ff-game/src/main/java/com/ff/base/enums/UserStatus.java diff --git a/ff-base/src/main/java/com/ff/base/enums/XKGameType.java b/ff-game/src/main/java/com/ff/base/enums/XKGameType.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/enums/XKGameType.java rename to ff-game/src/main/java/com/ff/base/enums/XKGameType.java diff --git a/ff-base/src/main/java/com/ff/base/exception/DemoModeException.java b/ff-game/src/main/java/com/ff/base/exception/DemoModeException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/DemoModeException.java rename to ff-game/src/main/java/com/ff/base/exception/DemoModeException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/GlobalException.java b/ff-game/src/main/java/com/ff/base/exception/GlobalException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/GlobalException.java rename to ff-game/src/main/java/com/ff/base/exception/GlobalException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/ServiceException.java b/ff-game/src/main/java/com/ff/base/exception/ServiceException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/ServiceException.java rename to ff-game/src/main/java/com/ff/base/exception/ServiceException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/UtilException.java b/ff-game/src/main/java/com/ff/base/exception/UtilException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/UtilException.java rename to ff-game/src/main/java/com/ff/base/exception/UtilException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/base/ApiException.java b/ff-game/src/main/java/com/ff/base/exception/base/ApiException.java similarity index 94% rename from ff-base/src/main/java/com/ff/base/exception/base/ApiException.java rename to ff-game/src/main/java/com/ff/base/exception/base/ApiException.java index f4b91c9..ba94f9b 100644 --- a/ff-base/src/main/java/com/ff/base/exception/base/ApiException.java +++ b/ff-game/src/main/java/com/ff/base/exception/base/ApiException.java @@ -1,8 +1,6 @@ package com.ff.base.exception.base; import com.ff.base.enums.ErrorCode; -import com.ff.base.utils.MessageUtils; -import com.ff.base.utils.StringUtils; import lombok.Getter; import org.springframework.lang.Nullable; diff --git a/ff-base/src/main/java/com/ff/base/exception/base/BaseException.java b/ff-game/src/main/java/com/ff/base/exception/base/BaseException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/base/BaseException.java rename to ff-game/src/main/java/com/ff/base/exception/base/BaseException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/file/FileException.java b/ff-game/src/main/java/com/ff/base/exception/file/FileException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/file/FileException.java rename to ff-game/src/main/java/com/ff/base/exception/file/FileException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/file/FileNameLengthLimitExceededException.java b/ff-game/src/main/java/com/ff/base/exception/file/FileNameLengthLimitExceededException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/file/FileNameLengthLimitExceededException.java rename to ff-game/src/main/java/com/ff/base/exception/file/FileNameLengthLimitExceededException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/file/FileSizeLimitExceededException.java b/ff-game/src/main/java/com/ff/base/exception/file/FileSizeLimitExceededException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/file/FileSizeLimitExceededException.java rename to ff-game/src/main/java/com/ff/base/exception/file/FileSizeLimitExceededException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/file/FileUploadException.java b/ff-game/src/main/java/com/ff/base/exception/file/FileUploadException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/file/FileUploadException.java rename to ff-game/src/main/java/com/ff/base/exception/file/FileUploadException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/file/InvalidExtensionException.java b/ff-game/src/main/java/com/ff/base/exception/file/InvalidExtensionException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/file/InvalidExtensionException.java rename to ff-game/src/main/java/com/ff/base/exception/file/InvalidExtensionException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/job/TaskException.java b/ff-game/src/main/java/com/ff/base/exception/job/TaskException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/job/TaskException.java rename to ff-game/src/main/java/com/ff/base/exception/job/TaskException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/user/BlackListException.java b/ff-game/src/main/java/com/ff/base/exception/user/BlackListException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/user/BlackListException.java rename to ff-game/src/main/java/com/ff/base/exception/user/BlackListException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/user/CaptchaException.java b/ff-game/src/main/java/com/ff/base/exception/user/CaptchaException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/user/CaptchaException.java rename to ff-game/src/main/java/com/ff/base/exception/user/CaptchaException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/user/CaptchaExpireException.java b/ff-game/src/main/java/com/ff/base/exception/user/CaptchaExpireException.java similarity index 85% rename from ff-base/src/main/java/com/ff/base/exception/user/CaptchaExpireException.java rename to ff-game/src/main/java/com/ff/base/exception/user/CaptchaExpireException.java index fedd22f..93650b6 100644 --- a/ff-base/src/main/java/com/ff/base/exception/user/CaptchaExpireException.java +++ b/ff-game/src/main/java/com/ff/base/exception/user/CaptchaExpireException.java @@ -1,7 +1,5 @@ package com.ff.base.exception.user; -import com.ff.base.exception.user.UserException; - /** * 验证码失效异常类 * diff --git a/ff-base/src/main/java/com/ff/base/exception/user/UserException.java b/ff-game/src/main/java/com/ff/base/exception/user/UserException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/user/UserException.java rename to ff-game/src/main/java/com/ff/base/exception/user/UserException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/user/UserNotExistsException.java b/ff-game/src/main/java/com/ff/base/exception/user/UserNotExistsException.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/exception/user/UserNotExistsException.java rename to ff-game/src/main/java/com/ff/base/exception/user/UserNotExistsException.java diff --git a/ff-base/src/main/java/com/ff/base/exception/user/UserPasswordNotMatchException.java b/ff-game/src/main/java/com/ff/base/exception/user/UserPasswordNotMatchException.java similarity index 87% rename from ff-base/src/main/java/com/ff/base/exception/user/UserPasswordNotMatchException.java rename to ff-game/src/main/java/com/ff/base/exception/user/UserPasswordNotMatchException.java index 44f7646..569c436 100644 --- a/ff-base/src/main/java/com/ff/base/exception/user/UserPasswordNotMatchException.java +++ b/ff-game/src/main/java/com/ff/base/exception/user/UserPasswordNotMatchException.java @@ -1,7 +1,5 @@ package com.ff.base.exception.user; -import com.ff.base.exception.user.UserException; - /** * 用户密码不正确或不符合规范异常类 * diff --git a/ff-base/src/main/java/com/ff/base/exception/user/UserPasswordRetryLimitExceedException.java b/ff-game/src/main/java/com/ff/base/exception/user/UserPasswordRetryLimitExceedException.java similarity index 89% rename from ff-base/src/main/java/com/ff/base/exception/user/UserPasswordRetryLimitExceedException.java rename to ff-game/src/main/java/com/ff/base/exception/user/UserPasswordRetryLimitExceedException.java index e867112..07f1d5f 100644 --- a/ff-base/src/main/java/com/ff/base/exception/user/UserPasswordRetryLimitExceedException.java +++ b/ff-game/src/main/java/com/ff/base/exception/user/UserPasswordRetryLimitExceedException.java @@ -1,7 +1,5 @@ package com.ff.base.exception.user; -import com.ff.base.exception.user.UserException; - /** * 用户错误最大次数异常类 * diff --git a/ff-base/src/main/java/com/ff/base/filter/PropertyPreExcludeFilter.java b/ff-game/src/main/java/com/ff/base/filter/PropertyPreExcludeFilter.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/filter/PropertyPreExcludeFilter.java rename to ff-game/src/main/java/com/ff/base/filter/PropertyPreExcludeFilter.java diff --git a/ff-base/src/main/java/com/ff/base/filter/RepeatableFilter.java b/ff-game/src/main/java/com/ff/base/filter/RepeatableFilter.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/filter/RepeatableFilter.java rename to ff-game/src/main/java/com/ff/base/filter/RepeatableFilter.java diff --git a/ff-base/src/main/java/com/ff/base/filter/RepeatedlyRequestWrapper.java b/ff-game/src/main/java/com/ff/base/filter/RepeatedlyRequestWrapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/filter/RepeatedlyRequestWrapper.java rename to ff-game/src/main/java/com/ff/base/filter/RepeatedlyRequestWrapper.java diff --git a/ff-base/src/main/java/com/ff/base/filter/XssFilter.java b/ff-game/src/main/java/com/ff/base/filter/XssFilter.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/filter/XssFilter.java rename to ff-game/src/main/java/com/ff/base/filter/XssFilter.java index c0ccba2..3acdf80 100644 --- a/ff-base/src/main/java/com/ff/base/filter/XssFilter.java +++ b/ff-game/src/main/java/com/ff/base/filter/XssFilter.java @@ -1,7 +1,6 @@ package com.ff.base.filter; import com.ff.base.enums.HttpMethod; -import com.ff.base.filter.XssHttpServletRequestWrapper; import com.ff.base.utils.StringUtils; import javax.servlet.*; diff --git a/ff-base/src/main/java/com/ff/base/filter/XssHttpServletRequestWrapper.java b/ff-game/src/main/java/com/ff/base/filter/XssHttpServletRequestWrapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/filter/XssHttpServletRequestWrapper.java rename to ff-game/src/main/java/com/ff/base/filter/XssHttpServletRequestWrapper.java diff --git a/ff-base/src/main/java/com/ff/base/handler/JsonHandler.java b/ff-game/src/main/java/com/ff/base/handler/JsonHandler.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/handler/JsonHandler.java rename to ff-game/src/main/java/com/ff/base/handler/JsonHandler.java diff --git a/ff-base/src/main/java/com/ff/base/handler/JsonListHandler.java b/ff-game/src/main/java/com/ff/base/handler/JsonListHandler.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/handler/JsonListHandler.java rename to ff-game/src/main/java/com/ff/base/handler/JsonListHandler.java diff --git a/ff-base/src/main/java/com/ff/base/interceptor/DataSourceSwitchInterceptor.java b/ff-game/src/main/java/com/ff/base/interceptor/DataSourceSwitchInterceptor.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/interceptor/DataSourceSwitchInterceptor.java rename to ff-game/src/main/java/com/ff/base/interceptor/DataSourceSwitchInterceptor.java diff --git a/ff-base/src/main/java/com/ff/base/interceptor/RepeatSubmitInterceptor.java b/ff-game/src/main/java/com/ff/base/interceptor/RepeatSubmitInterceptor.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/interceptor/RepeatSubmitInterceptor.java rename to ff-game/src/main/java/com/ff/base/interceptor/RepeatSubmitInterceptor.java diff --git a/ff-base/src/main/java/com/ff/base/interceptor/impl/SameUrlDataInterceptor.java b/ff-game/src/main/java/com/ff/base/interceptor/impl/SameUrlDataInterceptor.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/interceptor/impl/SameUrlDataInterceptor.java rename to ff-game/src/main/java/com/ff/base/interceptor/impl/SameUrlDataInterceptor.java index 6272255..121ffdf 100644 --- a/ff-base/src/main/java/com/ff/base/interceptor/impl/SameUrlDataInterceptor.java +++ b/ff-game/src/main/java/com/ff/base/interceptor/impl/SameUrlDataInterceptor.java @@ -5,9 +5,9 @@ import com.ff.base.annotation.RepeatSubmit; import com.ff.base.constant.CacheConstants; import com.ff.base.core.redis.RedisCache; import com.ff.base.filter.RepeatedlyRequestWrapper; +import com.ff.base.interceptor.RepeatSubmitInterceptor; import com.ff.base.utils.StringUtils; import com.ff.base.utils.http.HttpHelper; -import com.ff.base.interceptor.RepeatSubmitInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/ff-base/src/main/java/com/ff/base/manager/AsyncManager.java b/ff-game/src/main/java/com/ff/base/manager/AsyncManager.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/manager/AsyncManager.java rename to ff-game/src/main/java/com/ff/base/manager/AsyncManager.java index c68be3c..e82da77 100644 --- a/ff-base/src/main/java/com/ff/base/manager/AsyncManager.java +++ b/ff-game/src/main/java/com/ff/base/manager/AsyncManager.java @@ -6,6 +6,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.ArrayList; import java.util.List; + import java.util.TimerTask; import java.util.concurrent.*; diff --git a/ff-base/src/main/java/com/ff/base/manager/ShutdownManager.java b/ff-game/src/main/java/com/ff/base/manager/ShutdownManager.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/manager/ShutdownManager.java rename to ff-game/src/main/java/com/ff/base/manager/ShutdownManager.java diff --git a/ff-base/src/main/java/com/ff/base/manager/factory/AsyncFactory.java b/ff-game/src/main/java/com/ff/base/manager/factory/AsyncFactory.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/manager/factory/AsyncFactory.java rename to ff-game/src/main/java/com/ff/base/manager/factory/AsyncFactory.java index c3f1ea8..0c4f92d 100644 --- a/ff-base/src/main/java/com/ff/base/manager/factory/AsyncFactory.java +++ b/ff-game/src/main/java/com/ff/base/manager/factory/AsyncFactory.java @@ -1,16 +1,16 @@ package com.ff.base.manager.factory; import com.ff.base.constant.Constants; +import com.ff.base.system.domain.SysLogininfor; +import com.ff.base.system.domain.SysOperLog; +import com.ff.base.system.service.ISysLogininforService; +import com.ff.base.system.service.ISysOperLogService; import com.ff.base.utils.LogUtils; import com.ff.base.utils.ServletUtils; import com.ff.base.utils.StringUtils; import com.ff.base.utils.ip.AddressUtils; import com.ff.base.utils.ip.IpUtils; import com.ff.base.utils.spring.SpringUtils; -import com.ff.base.system.domain.SysLogininfor; -import com.ff.base.system.domain.SysOperLog; -import com.ff.base.system.service.ISysLogininforService; -import com.ff.base.system.service.ISysOperLogService; import eu.bitwalker.useragentutils.UserAgent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/ff-base/src/main/java/com/ff/base/security/context/AuthenticationContextHolder.java b/ff-game/src/main/java/com/ff/base/security/context/AuthenticationContextHolder.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/security/context/AuthenticationContextHolder.java rename to ff-game/src/main/java/com/ff/base/security/context/AuthenticationContextHolder.java diff --git a/ff-base/src/main/java/com/ff/base/security/context/PermissionContextHolder.java b/ff-game/src/main/java/com/ff/base/security/context/PermissionContextHolder.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/security/context/PermissionContextHolder.java rename to ff-game/src/main/java/com/ff/base/security/context/PermissionContextHolder.java diff --git a/ff-base/src/main/java/com/ff/base/security/encode/CustomMd5PasswordEncoder.java b/ff-game/src/main/java/com/ff/base/security/encode/CustomMd5PasswordEncoder.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/security/encode/CustomMd5PasswordEncoder.java rename to ff-game/src/main/java/com/ff/base/security/encode/CustomMd5PasswordEncoder.java diff --git a/ff-base/src/main/java/com/ff/base/security/filter/JwtAuthenticationTokenFilter.java b/ff-game/src/main/java/com/ff/base/security/filter/JwtAuthenticationTokenFilter.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/security/filter/JwtAuthenticationTokenFilter.java rename to ff-game/src/main/java/com/ff/base/security/filter/JwtAuthenticationTokenFilter.java index 3a359a6..4ef7410 100644 --- a/ff-base/src/main/java/com/ff/base/security/filter/JwtAuthenticationTokenFilter.java +++ b/ff-game/src/main/java/com/ff/base/security/filter/JwtAuthenticationTokenFilter.java @@ -5,7 +5,6 @@ import com.ff.base.constant.HttpStatus; import com.ff.base.core.domain.AjaxResult; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.core.redis.RedisCache; -import com.ff.base.datasource.DynamicDataSourceContextHolder; import com.ff.base.enums.MemberStatus; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.ServletUtils; diff --git a/ff-base/src/main/java/com/ff/base/security/handle/AuthenticationEntryPointImpl.java b/ff-game/src/main/java/com/ff/base/security/handle/AuthenticationEntryPointImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/security/handle/AuthenticationEntryPointImpl.java rename to ff-game/src/main/java/com/ff/base/security/handle/AuthenticationEntryPointImpl.java diff --git a/ff-base/src/main/java/com/ff/base/security/handle/LogoutSuccessHandlerImpl.java b/ff-game/src/main/java/com/ff/base/security/handle/LogoutSuccessHandlerImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/security/handle/LogoutSuccessHandlerImpl.java rename to ff-game/src/main/java/com/ff/base/security/handle/LogoutSuccessHandlerImpl.java index fedf15d..1e36e91 100644 --- a/ff-base/src/main/java/com/ff/base/security/handle/LogoutSuccessHandlerImpl.java +++ b/ff-game/src/main/java/com/ff/base/security/handle/LogoutSuccessHandlerImpl.java @@ -4,11 +4,11 @@ import com.alibaba.fastjson2.JSON; import com.ff.base.constant.Constants; import com.ff.base.core.domain.AjaxResult; import com.ff.base.core.domain.model.LoginUser; +import com.ff.base.manager.AsyncManager; +import com.ff.base.manager.factory.AsyncFactory; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.ServletUtils; import com.ff.base.utils.StringUtils; -import com.ff.base.manager.AsyncManager; -import com.ff.base.manager.factory.AsyncFactory; import com.ff.base.web.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; diff --git a/ff-base/src/main/java/com/ff/base/security/provider/MyDaoAuthenticationProvider.java b/ff-game/src/main/java/com/ff/base/security/provider/MyDaoAuthenticationProvider.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/security/provider/MyDaoAuthenticationProvider.java rename to ff-game/src/main/java/com/ff/base/security/provider/MyDaoAuthenticationProvider.java diff --git a/ff-base/src/main/java/com/ff/base/system/domain/vo/MetaVo.java b/ff-game/src/main/java/com/ff/base/system/domain/vo/MetaVo.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/domain/vo/MetaVo.java rename to ff-game/src/main/java/com/ff/base/system/domain/vo/MetaVo.java index cebed56..62bc0b2 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/vo/MetaVo.java +++ b/ff-game/src/main/java/com/ff/base/system/domain/vo/MetaVo.java @@ -1,5 +1,6 @@ package com.ff.base.system.domain.vo; + import com.ff.base.utils.StringUtils; /** diff --git a/ff-base/src/main/java/com/ff/base/system/domain/vo/RouterVo.java b/ff-game/src/main/java/com/ff/base/system/domain/vo/RouterVo.java similarity index 67% rename from ff-base/src/main/java/com/ff/base/system/domain/vo/RouterVo.java rename to ff-game/src/main/java/com/ff/base/system/domain/vo/RouterVo.java index 352cf6e..f69212c 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/vo/RouterVo.java +++ b/ff-game/src/main/java/com/ff/base/system/domain/vo/RouterVo.java @@ -10,8 +10,7 @@ import java.util.List; * @author ff */ @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class RouterVo -{ +public class RouterVo { /** * 路由名字 */ @@ -57,93 +56,75 @@ public class RouterVo */ private List children; - public String getName() - { + public String getName() { return name; } - public void setName(String name) - { + public void setName(String name) { this.name = name; } - public String getPath() - { + public String getPath() { return path; } - public void setPath(String path) - { + public void setPath(String path) { this.path = path; } - public boolean getHidden() - { + public boolean getHidden() { return hidden; } - public void setHidden(boolean hidden) - { + public void setHidden(boolean hidden) { this.hidden = hidden; } - public String getRedirect() - { + public String getRedirect() { return redirect; } - public void setRedirect(String redirect) - { + public void setRedirect(String redirect) { this.redirect = redirect; } - public String getComponent() - { + public String getComponent() { return component; } - public void setComponent(String component) - { + public void setComponent(String component) { this.component = component; } - public String getQuery() - { + public String getQuery() { return query; } - public void setQuery(String query) - { + public void setQuery(String query) { this.query = query; } - public Boolean getAlwaysShow() - { + public Boolean getAlwaysShow() { return alwaysShow; } - public void setAlwaysShow(Boolean alwaysShow) - { + public void setAlwaysShow(Boolean alwaysShow) { this.alwaysShow = alwaysShow; } - public MetaVo getMeta() - { + public MetaVo getMeta() { return meta; } - public void setMeta(MetaVo meta) - { + public void setMeta(MetaVo meta) { this.meta = meta; } - public List getChildren() - { + public List getChildren() { return children; } - public void setChildren(List children) - { + public void setChildren(List children) { this.children = children; } } diff --git a/ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java b/ff-game/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java similarity index 95% rename from ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java rename to ff-game/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java index 458782f..dc08d56 100644 --- a/ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java +++ b/ff-game/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java @@ -2,10 +2,8 @@ package com.ff.base.system.dto; 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.system.domain.TenantPlatform; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; diff --git a/ff-base/src/main/java/com/ff/base/system/dto/TenantSecretKeyDTO.java b/ff-game/src/main/java/com/ff/base/system/dto/TenantSecretKeyDTO.java similarity index 57% rename from ff-base/src/main/java/com/ff/base/system/dto/TenantSecretKeyDTO.java rename to ff-game/src/main/java/com/ff/base/system/dto/TenantSecretKeyDTO.java index 9594eeb..6bb12e1 100644 --- a/ff-base/src/main/java/com/ff/base/system/dto/TenantSecretKeyDTO.java +++ b/ff-game/src/main/java/com/ff/base/system/dto/TenantSecretKeyDTO.java @@ -1,14 +1,7 @@ package com.ff.base.system.dto; -import com.ff.base.annotation.Excel; -import com.ff.base.core.domain.BaseEntity; import com.ff.base.system.domain.TenantSecretKey; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; /** * 用户租户密钥对象 ff_tenant_secret_key diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysConfigMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysConfigMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysConfigMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysConfigMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysDatasourceMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysDatasourceMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysDatasourceMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysDatasourceMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysDeptMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysDeptMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysDeptMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysDeptMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysDictDataMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysDictDataMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysDictDataMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysDictDataMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysDictTypeMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysDictTypeMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysDictTypeMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysDictTypeMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysLogininforMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysLogininforMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysLogininforMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysLogininforMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysMenuMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysMenuMapper.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysMenuMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysMenuMapper.java index 07a3a45..b859ba9 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/SysMenuMapper.java +++ b/ff-game/src/main/java/com/ff/base/system/mapper/SysMenuMapper.java @@ -1,11 +1,9 @@ package com.ff.base.system.mapper; import com.ff.base.system.domain.SysMenu; -import com.ff.base.system.domain.SysRole; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Set; /** * 菜单表 数据层 diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysOperLogMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysOperLogMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysOperLogMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysOperLogMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysPostMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysPostMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysPostMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysPostMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysRoleDeptMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysRoleDeptMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysRoleDeptMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysRoleDeptMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysRoleMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysRoleMapper.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysRoleMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysRoleMapper.java index 939add2..bd7194d 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/SysRoleMapper.java +++ b/ff-game/src/main/java/com/ff/base/system/mapper/SysRoleMapper.java @@ -2,7 +2,6 @@ package com.ff.base.system.mapper; import com.ff.base.system.domain.SysRole; -import javax.management.relation.Role; import java.util.List; /** diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysRoleMenuMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysRoleMenuMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysRoleMenuMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysRoleMenuMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysUserMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysUserMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysUserMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysUserMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysUserPostMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysUserPostMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysUserPostMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysUserPostMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/SysUserRoleMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/SysUserRoleMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/SysUserRoleMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/SysUserRoleMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java index 4a24981..b0c5164 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java +++ b/ff-game/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java @@ -1,8 +1,9 @@ package com.ff.base.system.mapper; -import java.util.List; import com.ff.base.system.domain.TenantPlatform; +import java.util.List; + /** * 租户成本管理Mapper接口 * diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantSecretKeyMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/TenantSecretKeyMapper.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/mapper/TenantSecretKeyMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/TenantSecretKeyMapper.java index bb74dd5..dcd368c 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/TenantSecretKeyMapper.java +++ b/ff-game/src/main/java/com/ff/base/system/mapper/TenantSecretKeyMapper.java @@ -1,9 +1,10 @@ package com.ff.base.system.mapper; -import java.util.List; import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.dto.TenantSecretKeyDTO; +import java.util.List; + /** * 用户租户密钥Mapper接口 * diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java b/ff-game/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java rename to ff-game/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java index 310db8a..b9cebe5 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java +++ b/ff-game/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java @@ -1,8 +1,9 @@ package com.ff.base.system.mapper; -import java.util.List; import com.ff.base.system.domain.TenantWhite; +import java.util.List; + /** * 租户白名单Mapper接口 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysConfigService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysConfigService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysConfigService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysConfigService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysDatasourceService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysDatasourceService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysDatasourceService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysDatasourceService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysDeptService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysDeptService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysDeptService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysDeptService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysDictDataService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysDictDataService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysDictDataService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysDictDataService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysDictTypeService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysDictTypeService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysDictTypeService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysDictTypeService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysLogininforService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysLogininforService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysLogininforService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysLogininforService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysMenuService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysMenuService.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/system/service/ISysMenuService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysMenuService.java index 5ade323..6cacb09 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ISysMenuService.java +++ b/ff-game/src/main/java/com/ff/base/system/service/ISysMenuService.java @@ -2,7 +2,6 @@ package com.ff.base.system.service; import com.ff.base.core.domain.TreeSelect; import com.ff.base.system.domain.SysMenu; -import com.ff.base.system.domain.SysRole; import com.ff.base.system.domain.vo.RouterVo; import java.util.List; diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysOperLogService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysOperLogService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysOperLogService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysOperLogService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysPostService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysPostService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysPostService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysPostService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysRoleService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysRoleService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysRoleService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysRoleService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysUserOnlineService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysUserOnlineService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysUserOnlineService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysUserOnlineService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ISysUserService.java b/ff-game/src/main/java/com/ff/base/system/service/ISysUserService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ISysUserService.java rename to ff-game/src/main/java/com/ff/base/system/service/ISysUserService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java b/ff-game/src/main/java/com/ff/base/system/service/ITenantAgentService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java rename to ff-game/src/main/java/com/ff/base/system/service/ITenantAgentService.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java b/ff-game/src/main/java/com/ff/base/system/service/ITenantPlatformService.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java rename to ff-game/src/main/java/com/ff/base/system/service/ITenantPlatformService.java index 786cbc7..b4bb439 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java +++ b/ff-game/src/main/java/com/ff/base/system/service/ITenantPlatformService.java @@ -1,8 +1,9 @@ package com.ff.base.system.service; -import java.util.List; import com.ff.base.system.domain.TenantPlatform; +import java.util.List; + /** * 租户成本管理Service接口 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java b/ff-game/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java rename to ff-game/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java index f94fa3a..bde044e 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java +++ b/ff-game/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java @@ -1,10 +1,11 @@ package com.ff.base.system.service; -import java.util.List; import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.dto.CreateTenantDTO; import com.ff.base.system.dto.TenantSecretKeyDTO; +import java.util.List; + /** * 用户租户密钥Service接口 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java b/ff-game/src/main/java/com/ff/base/system/service/ITenantWhiteService.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java rename to ff-game/src/main/java/com/ff/base/system/service/ITenantWhiteService.java index 75061a5..e0ed357 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java +++ b/ff-game/src/main/java/com/ff/base/system/service/ITenantWhiteService.java @@ -1,8 +1,9 @@ package com.ff.base.system.service; -import java.util.List; import com.ff.base.system.domain.TenantWhite; +import java.util.List; + /** * 租户白名单Service接口 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysConfigServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysConfigServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysConfigServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysConfigServiceImpl.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysDatasourceServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysDatasourceServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysDatasourceServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysDatasourceServiceImpl.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysDeptServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysDeptServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysDeptServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysDeptServiceImpl.java index f477f55..abfa435 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysDeptServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysDeptServiceImpl.java @@ -4,17 +4,17 @@ import cn.hutool.core.util.IdUtil; import com.ff.base.annotation.DataScope; import com.ff.base.constant.UserConstants; import com.ff.base.core.domain.TreeSelect; +import com.ff.base.core.text.Convert; +import com.ff.base.exception.ServiceException; import com.ff.base.system.domain.SysDept; import com.ff.base.system.domain.SysRole; import com.ff.base.system.domain.SysUser; -import com.ff.base.core.text.Convert; -import com.ff.base.exception.ServiceException; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.spring.SpringUtils; import com.ff.base.system.mapper.SysDeptMapper; import com.ff.base.system.mapper.SysRoleMapper; import com.ff.base.system.service.ISysDeptService; +import com.ff.base.utils.SecurityUtils; +import com.ff.base.utils.StringUtils; +import com.ff.base.utils.spring.SpringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysDictDataServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysDictDataServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysDictDataServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysDictDataServiceImpl.java index 4271437..33c52b6 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysDictDataServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysDictDataServiceImpl.java @@ -2,9 +2,9 @@ package com.ff.base.system.service.impl; import cn.hutool.core.util.IdUtil; import com.ff.base.system.domain.SysDictData; -import com.ff.base.utils.DictUtils; import com.ff.base.system.mapper.SysDictDataMapper; import com.ff.base.system.service.ISysDictDataService; +import com.ff.base.utils.DictUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysDictTypeServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysDictTypeServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysDictTypeServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysDictTypeServiceImpl.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysLogininforServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysLogininforServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysLogininforServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysLogininforServiceImpl.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysMenuServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysMenuServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysMenuServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysMenuServiceImpl.java index 6e65523..d6cab51 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysMenuServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysMenuServiceImpl.java @@ -7,14 +7,14 @@ import com.ff.base.core.domain.TreeSelect; import com.ff.base.system.domain.SysMenu; import com.ff.base.system.domain.SysRole; import com.ff.base.system.domain.SysUser; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.StringUtils; import com.ff.base.system.domain.vo.MetaVo; import com.ff.base.system.domain.vo.RouterVo; import com.ff.base.system.mapper.SysMenuMapper; import com.ff.base.system.mapper.SysRoleMapper; import com.ff.base.system.mapper.SysRoleMenuMapper; import com.ff.base.system.service.ISysMenuService; +import com.ff.base.utils.SecurityUtils; +import com.ff.base.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysOperLogServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysOperLogServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysOperLogServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysOperLogServiceImpl.java diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysPostServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysPostServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysPostServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysPostServiceImpl.java index dc4d830..42d3a7d 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysPostServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysPostServiceImpl.java @@ -3,11 +3,11 @@ package com.ff.base.system.service.impl; import cn.hutool.core.util.IdUtil; import com.ff.base.constant.UserConstants; import com.ff.base.exception.ServiceException; -import com.ff.base.utils.StringUtils; import com.ff.base.system.domain.SysPost; import com.ff.base.system.mapper.SysPostMapper; import com.ff.base.system.mapper.SysUserPostMapper; import com.ff.base.system.service.ISysPostService; +import com.ff.base.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysRoleServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysRoleServiceImpl.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysRoleServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysRoleServiceImpl.java index 35074be..06333de 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysRoleServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysRoleServiceImpl.java @@ -3,20 +3,16 @@ package com.ff.base.system.service.impl; import cn.hutool.core.util.IdUtil; import com.ff.base.annotation.DataScope; import com.ff.base.constant.UserConstants; -import com.ff.base.system.domain.SysRole; -import com.ff.base.system.domain.SysUser; import com.ff.base.exception.ServiceException; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.spring.SpringUtils; -import com.ff.base.system.domain.SysRoleDept; -import com.ff.base.system.domain.SysRoleMenu; -import com.ff.base.system.domain.SysUserRole; +import com.ff.base.system.domain.*; import com.ff.base.system.mapper.SysRoleDeptMapper; import com.ff.base.system.mapper.SysRoleMapper; import com.ff.base.system.mapper.SysRoleMenuMapper; import com.ff.base.system.mapper.SysUserRoleMapper; import com.ff.base.system.service.ISysRoleService; +import com.ff.base.utils.SecurityUtils; +import com.ff.base.utils.StringUtils; +import com.ff.base.utils.spring.SpringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysUserOnlineServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysUserOnlineServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysUserOnlineServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysUserOnlineServiceImpl.java index 49f0fc9..76ce57d 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysUserOnlineServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysUserOnlineServiceImpl.java @@ -1,9 +1,9 @@ package com.ff.base.system.service.impl; import com.ff.base.core.domain.model.LoginUser; -import com.ff.base.utils.StringUtils; import com.ff.base.system.domain.SysUserOnline; import com.ff.base.system.service.ISysUserOnlineService; +import com.ff.base.utils.StringUtils; import org.springframework.stereotype.Service; /** diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/SysUserServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/SysUserServiceImpl.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/system/service/impl/SysUserServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/SysUserServiceImpl.java index e2a745b..0389662 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/SysUserServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/SysUserServiceImpl.java @@ -3,20 +3,16 @@ package com.ff.base.system.service.impl; import cn.hutool.core.util.IdUtil; import com.ff.base.annotation.DataScope; import com.ff.base.constant.UserConstants; -import com.ff.base.system.domain.SysRole; -import com.ff.base.system.domain.SysUser; import com.ff.base.exception.ServiceException; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.bean.BeanValidators; -import com.ff.base.utils.spring.SpringUtils; -import com.ff.base.system.domain.SysPost; -import com.ff.base.system.domain.SysUserPost; -import com.ff.base.system.domain.SysUserRole; +import com.ff.base.system.domain.*; import com.ff.base.system.mapper.*; import com.ff.base.system.service.ISysConfigService; import com.ff.base.system.service.ISysDeptService; import com.ff.base.system.service.ISysUserService; +import com.ff.base.utils.SecurityUtils; +import com.ff.base.utils.StringUtils; +import com.ff.base.utils.bean.BeanValidators; +import com.ff.base.utils.spring.SpringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java index c376ed7..27a9069 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java @@ -1,7 +1,5 @@ package com.ff.base.system.service.impl; -import java.util.List; - import com.ff.base.constant.Constants; import com.ff.base.core.domain.model.LoginForm; import com.ff.base.core.domain.model.LoginUser; @@ -12,7 +10,6 @@ import com.ff.base.manager.AsyncManager; import com.ff.base.manager.factory.AsyncFactory; import com.ff.base.security.context.AuthenticationContextHolder; import com.ff.base.system.domain.TenantAgent; -import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.mapper.TenantAgentMapper; import com.ff.base.system.service.ITenantAgentService; import com.ff.base.utils.DateUtils; @@ -25,10 +22,10 @@ import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; -import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; +import java.util.List; /** * 代理Service业务层处理 diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java index 0e3f11f..c7bf0f7 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java @@ -1,14 +1,14 @@ package com.ff.base.system.service.impl; -import java.util.Collections; -import java.util.List; +import cn.hutool.core.util.IdUtil; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.mapper.TenantPlatformMapper; +import com.ff.base.system.service.ITenantPlatformService; import com.ff.base.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.base.system.mapper.TenantPlatformMapper; -import com.ff.base.system.domain.TenantPlatform; -import com.ff.base.system.service.ITenantPlatformService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java index 9105c0f..920d02c 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java @@ -1,25 +1,22 @@ package com.ff.base.system.service.impl; -import java.util.Collections; -import java.util.List; - import cn.hutool.core.util.IdUtil; import com.ff.base.constant.Constants; import com.ff.base.core.domain.model.LoginForm; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.enums.LoginType; -import com.ff.base.enums.OperationType; -import com.ff.base.enums.QuotaType; import com.ff.base.exception.ServiceException; -import com.ff.base.exception.base.BaseException; import com.ff.base.exception.user.UserPasswordNotMatchException; import com.ff.base.manager.AsyncManager; import com.ff.base.manager.factory.AsyncFactory; import com.ff.base.security.context.AuthenticationContextHolder; import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.dto.CreateTenantDTO; import com.ff.base.system.dto.TenantSecretKeyDTO; +import com.ff.base.system.mapper.TenantSecretKeyMapper; import com.ff.base.system.service.ITenantPlatformService; +import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.base.utils.DateUtils; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.NumberUtils; @@ -34,13 +31,10 @@ import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; -import com.ff.base.system.mapper.TenantSecretKeyMapper; -import com.ff.base.system.domain.TenantSecretKey; -import com.ff.base.system.service.ITenantSecretKeyService; import org.springframework.util.CollectionUtils; -import org.springframework.util.ObjectUtils; import javax.annotation.Resource; +import java.util.List; /** * 用户租户密钥Service业务层处理 diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java rename to ff-game/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java index 46c1d6b..515587c 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java @@ -1,13 +1,14 @@ package com.ff.base.system.service.impl; -import java.util.List; +import cn.hutool.core.util.IdUtil; +import com.ff.base.system.domain.TenantWhite; +import com.ff.base.system.mapper.TenantWhiteMapper; +import com.ff.base.system.service.ITenantWhiteService; import com.ff.base.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.base.system.mapper.TenantWhiteMapper; -import com.ff.base.system.domain.TenantWhite; -import com.ff.base.system.service.ITenantWhiteService; -import cn.hutool.core.util.IdUtil; + +import java.util.List; /** diff --git a/ff-base/src/main/java/com/ff/base/utils/Arith.java b/ff-game/src/main/java/com/ff/base/utils/Arith.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/Arith.java rename to ff-game/src/main/java/com/ff/base/utils/Arith.java diff --git a/ff-base/src/main/java/com/ff/base/utils/DESEncryptUtils.java b/ff-game/src/main/java/com/ff/base/utils/DESEncryptUtils.java similarity index 87% rename from ff-base/src/main/java/com/ff/base/utils/DESEncryptUtils.java rename to ff-game/src/main/java/com/ff/base/utils/DESEncryptUtils.java index f80963c..c7aee91 100644 --- a/ff-base/src/main/java/com/ff/base/utils/DESEncryptUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/DESEncryptUtils.java @@ -1,17 +1,13 @@ package com.ff.base.utils; import com.ff.base.exception.base.BaseException; -import lombok.Data; -import javax.crypto.*; +import javax.crypto.Cipher; +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; -import java.nio.charset.StandardCharsets; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.spec.InvalidKeySpecException; import java.security.spec.KeySpec; import java.util.Base64; diff --git a/ff-base/src/main/java/com/ff/base/utils/DateUtils.java b/ff-game/src/main/java/com/ff/base/utils/DateUtils.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/utils/DateUtils.java rename to ff-game/src/main/java/com/ff/base/utils/DateUtils.java index a473e18..de85db9 100644 --- a/ff-base/src/main/java/com/ff/base/utils/DateUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/DateUtils.java @@ -308,7 +308,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { */ public static Long getDayStart(long timestamp, String timeZoneId) { ZoneId zoneId = ZoneId.of(timeZoneId); - ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(timestamp), zoneId); + ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneId); LocalDate localDate = zonedDateTime.toLocalDate(); LocalDateTime startOfDay = localDate.atStartOfDay(); ZonedDateTime startOfDayZoned = startOfDay.atZone(zoneId); @@ -338,7 +338,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { */ public static Long getDayEnd(long timestamp, String timeZoneId) { ZoneId zoneId = ZoneId.of(timeZoneId); - ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(timestamp), zoneId); + ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneId); LocalDate localDate = zonedDateTime.toLocalDate(); LocalDateTime endOfDay = localDate.atTime(23, 59, 59, 999999999); ZonedDateTime endOfDayZoned = endOfDay.atZone(zoneId); diff --git a/ff-base/src/main/java/com/ff/base/utils/DesensitizedUtil.java b/ff-game/src/main/java/com/ff/base/utils/DesensitizedUtil.java similarity index 96% rename from ff-base/src/main/java/com/ff/base/utils/DesensitizedUtil.java rename to ff-game/src/main/java/com/ff/base/utils/DesensitizedUtil.java index eb48a3f..2058f27 100644 --- a/ff-base/src/main/java/com/ff/base/utils/DesensitizedUtil.java +++ b/ff-game/src/main/java/com/ff/base/utils/DesensitizedUtil.java @@ -1,7 +1,5 @@ package com.ff.base.utils; -import com.ff.base.utils.StringUtils; - /** * 脱敏工具类 * diff --git a/ff-base/src/main/java/com/ff/base/utils/DictUtils.java b/ff-game/src/main/java/com/ff/base/utils/DictUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/DictUtils.java rename to ff-game/src/main/java/com/ff/base/utils/DictUtils.java index fd73253..b51a4f7 100644 --- a/ff-base/src/main/java/com/ff/base/utils/DictUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/DictUtils.java @@ -2,8 +2,8 @@ package com.ff.base.utils; import com.alibaba.fastjson2.JSONArray; import com.ff.base.constant.CacheConstants; -import com.ff.base.system.domain.SysDictData; import com.ff.base.core.redis.RedisCache; +import com.ff.base.system.domain.SysDictData; import com.ff.base.utils.spring.SpringUtils; import java.util.Collection; diff --git a/ff-base/src/main/java/com/ff/base/utils/ExceptionUtil.java b/ff-game/src/main/java/com/ff/base/utils/ExceptionUtil.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/ExceptionUtil.java rename to ff-game/src/main/java/com/ff/base/utils/ExceptionUtil.java diff --git a/ff-base/src/main/java/com/ff/base/utils/JsonUtil.java b/ff-game/src/main/java/com/ff/base/utils/JsonUtil.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/JsonUtil.java rename to ff-game/src/main/java/com/ff/base/utils/JsonUtil.java diff --git a/ff-base/src/main/java/com/ff/base/utils/LogUtils.java b/ff-game/src/main/java/com/ff/base/utils/LogUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/LogUtils.java rename to ff-game/src/main/java/com/ff/base/utils/LogUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/MessageUtils.java b/ff-game/src/main/java/com/ff/base/utils/MessageUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/MessageUtils.java rename to ff-game/src/main/java/com/ff/base/utils/MessageUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/NumberUtils.java b/ff-game/src/main/java/com/ff/base/utils/NumberUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/NumberUtils.java rename to ff-game/src/main/java/com/ff/base/utils/NumberUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/PageUtils.java b/ff-game/src/main/java/com/ff/base/utils/PageUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/PageUtils.java rename to ff-game/src/main/java/com/ff/base/utils/PageUtils.java index 8c6182e..55d04d8 100644 --- a/ff-base/src/main/java/com/ff/base/utils/PageUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/PageUtils.java @@ -1,9 +1,9 @@ package com.ff.base.utils; -import com.github.pagehelper.PageHelper; import com.ff.base.core.page.PageDomain; import com.ff.base.core.page.TableSupport; import com.ff.base.utils.sql.SqlUtil; +import com.github.pagehelper.PageHelper; /** * 分页工具类 diff --git a/ff-base/src/main/java/com/ff/base/utils/QuotaUtils.java b/ff-game/src/main/java/com/ff/base/utils/QuotaUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/QuotaUtils.java rename to ff-game/src/main/java/com/ff/base/utils/QuotaUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java b/ff-game/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java rename to ff-game/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java index 71ed8ba..c1ec1d9 100644 --- a/ff-base/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/RandomGeneratorUtils.java @@ -1,8 +1,6 @@ package com.ff.base.utils; import java.security.SecureRandom; -import java.util.HashSet; -import java.util.Set; /** * 随机发生器 diff --git a/ff-base/src/main/java/com/ff/base/utils/SecurityUtils.java b/ff-game/src/main/java/com/ff/base/utils/SecurityUtils.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/utils/SecurityUtils.java rename to ff-game/src/main/java/com/ff/base/utils/SecurityUtils.java index 1874748..53fa0ae 100644 --- a/ff-base/src/main/java/com/ff/base/utils/SecurityUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/SecurityUtils.java @@ -14,10 +14,8 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.util.PatternMatchUtils; -import javax.management.relation.Role; import java.util.Collection; import java.util.List; -import java.util.Set; import java.util.stream.Collectors; /** diff --git a/ff-base/src/main/java/com/ff/base/utils/ServletUtils.java b/ff-game/src/main/java/com/ff/base/utils/ServletUtils.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/utils/ServletUtils.java rename to ff-game/src/main/java/com/ff/base/utils/ServletUtils.java index e90caa0..e2ee4f4 100644 --- a/ff-base/src/main/java/com/ff/base/utils/ServletUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/ServletUtils.java @@ -2,7 +2,6 @@ package com.ff.base.utils; import com.ff.base.constant.Constants; import com.ff.base.core.text.Convert; -import com.ff.base.utils.StringUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; diff --git a/ff-base/src/main/java/com/ff/base/utils/SleepUtil.java b/ff-game/src/main/java/com/ff/base/utils/SleepUtil.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/SleepUtil.java rename to ff-game/src/main/java/com/ff/base/utils/SleepUtil.java diff --git a/ff-base/src/main/java/com/ff/base/utils/StringUtils.java b/ff-game/src/main/java/com/ff/base/utils/StringUtils.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/utils/StringUtils.java rename to ff-game/src/main/java/com/ff/base/utils/StringUtils.java index d35bd9e..d92ff73 100644 --- a/ff-base/src/main/java/com/ff/base/utils/StringUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/StringUtils.java @@ -1,6 +1,5 @@ package com.ff.base.utils; -import com.ff.base.constant.ConfigConstants; import com.ff.base.constant.Constants; import com.ff.base.core.text.StrFormatter; import org.springframework.util.AntPathMatcher; diff --git a/ff-base/src/main/java/com/ff/base/utils/TenantUtils.java b/ff-game/src/main/java/com/ff/base/utils/TenantUtils.java similarity index 76% rename from ff-base/src/main/java/com/ff/base/utils/TenantUtils.java rename to ff-game/src/main/java/com/ff/base/utils/TenantUtils.java index 3dd9718..e1586dc 100644 --- a/ff-base/src/main/java/com/ff/base/utils/TenantUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/TenantUtils.java @@ -2,10 +2,6 @@ package com.ff.base.utils; import com.ff.base.constant.Constants; import com.ff.base.datasource.DynamicDataSourceContextHolder; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; /** * 持有Utils diff --git a/ff-base/src/main/java/com/ff/base/utils/Threads.java b/ff-game/src/main/java/com/ff/base/utils/Threads.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/Threads.java rename to ff-game/src/main/java/com/ff/base/utils/Threads.java diff --git a/ff-base/src/main/java/com/ff/base/utils/XmlUtils.java b/ff-game/src/main/java/com/ff/base/utils/XmlUtils.java similarity index 78% rename from ff-base/src/main/java/com/ff/base/utils/XmlUtils.java rename to ff-game/src/main/java/com/ff/base/utils/XmlUtils.java index 711b0fb..1d62279 100644 --- a/ff-base/src/main/java/com/ff/base/utils/XmlUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/XmlUtils.java @@ -1,20 +1,11 @@ package com.ff.base.utils; import com.ff.base.exception.base.BaseException; -import org.apache.poi.ss.formula.functions.T; -import javax.crypto.Cipher; -import javax.crypto.KeyGenerator; -import javax.crypto.SecretKey; -import javax.crypto.SecretKeyFactory; -import javax.crypto.spec.DESKeySpec; -import javax.crypto.spec.IvParameterSpec; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import java.io.StringReader; -import java.security.spec.KeySpec; -import java.util.Base64; /** diff --git a/ff-base/src/main/java/com/ff/base/utils/bean/BeanUtils.java b/ff-game/src/main/java/com/ff/base/utils/bean/BeanUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/bean/BeanUtils.java rename to ff-game/src/main/java/com/ff/base/utils/bean/BeanUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/bean/BeanValidators.java b/ff-game/src/main/java/com/ff/base/utils/bean/BeanValidators.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/bean/BeanValidators.java rename to ff-game/src/main/java/com/ff/base/utils/bean/BeanValidators.java diff --git a/ff-base/src/main/java/com/ff/base/utils/domain/DomainInfo.java b/ff-game/src/main/java/com/ff/base/utils/domain/DomainInfo.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/domain/DomainInfo.java rename to ff-game/src/main/java/com/ff/base/utils/domain/DomainInfo.java diff --git a/ff-base/src/main/java/com/ff/base/utils/domain/DomainUtils.java b/ff-game/src/main/java/com/ff/base/utils/domain/DomainUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/domain/DomainUtils.java rename to ff-game/src/main/java/com/ff/base/utils/domain/DomainUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/file/FileTypeUtils.java b/ff-game/src/main/java/com/ff/base/utils/file/FileTypeUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/file/FileTypeUtils.java rename to ff-game/src/main/java/com/ff/base/utils/file/FileTypeUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/file/FileUploadUtils.java b/ff-game/src/main/java/com/ff/base/utils/file/FileUploadUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/file/FileUploadUtils.java rename to ff-game/src/main/java/com/ff/base/utils/file/FileUploadUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/file/FileUtils.java b/ff-game/src/main/java/com/ff/base/utils/file/FileUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/file/FileUtils.java rename to ff-game/src/main/java/com/ff/base/utils/file/FileUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/file/ImageUtils.java b/ff-game/src/main/java/com/ff/base/utils/file/ImageUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/file/ImageUtils.java rename to ff-game/src/main/java/com/ff/base/utils/file/ImageUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/file/MimeTypeUtils.java b/ff-game/src/main/java/com/ff/base/utils/file/MimeTypeUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/file/MimeTypeUtils.java rename to ff-game/src/main/java/com/ff/base/utils/file/MimeTypeUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/html/EscapeUtil.java b/ff-game/src/main/java/com/ff/base/utils/html/EscapeUtil.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/utils/html/EscapeUtil.java rename to ff-game/src/main/java/com/ff/base/utils/html/EscapeUtil.java index 6394a35..98c301e 100644 --- a/ff-base/src/main/java/com/ff/base/utils/html/EscapeUtil.java +++ b/ff-game/src/main/java/com/ff/base/utils/html/EscapeUtil.java @@ -1,7 +1,6 @@ package com.ff.base.utils.html; import com.ff.base.utils.StringUtils; -import com.ff.base.utils.html.HTMLFilter; /** * 转义和反转义工具类 diff --git a/ff-base/src/main/java/com/ff/base/utils/html/HTMLFilter.java b/ff-game/src/main/java/com/ff/base/utils/html/HTMLFilter.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/html/HTMLFilter.java rename to ff-game/src/main/java/com/ff/base/utils/html/HTMLFilter.java diff --git a/ff-base/src/main/java/com/ff/base/utils/http/HttpClientSslUtils.java b/ff-game/src/main/java/com/ff/base/utils/http/HttpClientSslUtils.java similarity index 97% rename from ff-base/src/main/java/com/ff/base/utils/http/HttpClientSslUtils.java rename to ff-game/src/main/java/com/ff/base/utils/http/HttpClientSslUtils.java index 47f73ad..3514f90 100644 --- a/ff-base/src/main/java/com/ff/base/utils/http/HttpClientSslUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/http/HttpClientSslUtils.java @@ -130,16 +130,16 @@ public class HttpClientSslUtils { private static class TrustAllX509TrustManager implements X509TrustManager { @Override - public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) { + public void checkClientTrusted(X509Certificate[] chain, String authType) { } @Override - public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) { + public void checkServerTrusted(X509Certificate[] chain, String authType) { } @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return new java.security.cert.X509Certificate[0]; + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[0]; } } diff --git a/ff-base/src/main/java/com/ff/base/utils/http/HttpHelper.java b/ff-game/src/main/java/com/ff/base/utils/http/HttpHelper.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/http/HttpHelper.java rename to ff-game/src/main/java/com/ff/base/utils/http/HttpHelper.java diff --git a/ff-base/src/main/java/com/ff/base/utils/http/HttpUtils.java b/ff-game/src/main/java/com/ff/base/utils/http/HttpUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/http/HttpUtils.java rename to ff-game/src/main/java/com/ff/base/utils/http/HttpUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/ip/AddressUtils.java b/ff-game/src/main/java/com/ff/base/utils/ip/AddressUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/ip/AddressUtils.java rename to ff-game/src/main/java/com/ff/base/utils/ip/AddressUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/ip/IpUtils.java b/ff-game/src/main/java/com/ff/base/utils/ip/IpUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/ip/IpUtils.java rename to ff-game/src/main/java/com/ff/base/utils/ip/IpUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/nginx/NginxUtils.java b/ff-game/src/main/java/com/ff/base/utils/nginx/NginxUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/nginx/NginxUtils.java rename to ff-game/src/main/java/com/ff/base/utils/nginx/NginxUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/poi/ExcelHandlerAdapter.java b/ff-game/src/main/java/com/ff/base/utils/poi/ExcelHandlerAdapter.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/poi/ExcelHandlerAdapter.java rename to ff-game/src/main/java/com/ff/base/utils/poi/ExcelHandlerAdapter.java diff --git a/ff-base/src/main/java/com/ff/base/utils/poi/ExcelUtil.java b/ff-game/src/main/java/com/ff/base/utils/poi/ExcelUtil.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/poi/ExcelUtil.java rename to ff-game/src/main/java/com/ff/base/utils/poi/ExcelUtil.java diff --git a/ff-base/src/main/java/com/ff/base/utils/qrcode/QRCodeGenerator.java b/ff-game/src/main/java/com/ff/base/utils/qrcode/QRCodeGenerator.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/utils/qrcode/QRCodeGenerator.java rename to ff-game/src/main/java/com/ff/base/utils/qrcode/QRCodeGenerator.java index 4c6b18c..ca8ec35 100644 --- a/ff-base/src/main/java/com/ff/base/utils/qrcode/QRCodeGenerator.java +++ b/ff-game/src/main/java/com/ff/base/utils/qrcode/QRCodeGenerator.java @@ -5,6 +5,7 @@ import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; + import java.io.ByteArrayOutputStream; import java.util.Base64; import java.util.HashMap; diff --git a/ff-base/src/main/java/com/ff/base/utils/reflect/ReflectUtils.java b/ff-game/src/main/java/com/ff/base/utils/reflect/ReflectUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/reflect/ReflectUtils.java rename to ff-game/src/main/java/com/ff/base/utils/reflect/ReflectUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/sign/Base64.java b/ff-game/src/main/java/com/ff/base/utils/sign/Base64.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/sign/Base64.java rename to ff-game/src/main/java/com/ff/base/utils/sign/Base64.java diff --git a/ff-base/src/main/java/com/ff/base/utils/sign/Md5Utils.java b/ff-game/src/main/java/com/ff/base/utils/sign/Md5Utils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/sign/Md5Utils.java rename to ff-game/src/main/java/com/ff/base/utils/sign/Md5Utils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/spring/SpringUtils.java b/ff-game/src/main/java/com/ff/base/utils/spring/SpringUtils.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/spring/SpringUtils.java rename to ff-game/src/main/java/com/ff/base/utils/spring/SpringUtils.java diff --git a/ff-base/src/main/java/com/ff/base/utils/sql/SqlUtil.java b/ff-game/src/main/java/com/ff/base/utils/sql/SqlUtil.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/sql/SqlUtil.java rename to ff-game/src/main/java/com/ff/base/utils/sql/SqlUtil.java diff --git a/ff-base/src/main/java/com/ff/base/utils/uuid/IdUtils.java b/ff-game/src/main/java/com/ff/base/utils/uuid/IdUtils.java similarity index 96% rename from ff-base/src/main/java/com/ff/base/utils/uuid/IdUtils.java rename to ff-game/src/main/java/com/ff/base/utils/uuid/IdUtils.java index e170381..b5f3a36 100644 --- a/ff-base/src/main/java/com/ff/base/utils/uuid/IdUtils.java +++ b/ff-game/src/main/java/com/ff/base/utils/uuid/IdUtils.java @@ -1,7 +1,5 @@ package com.ff.base.utils.uuid; -import com.ff.base.utils.uuid.UUID; - /** * ID生成器工具类 * diff --git a/ff-base/src/main/java/com/ff/base/utils/uuid/Seq.java b/ff-game/src/main/java/com/ff/base/utils/uuid/Seq.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/uuid/Seq.java rename to ff-game/src/main/java/com/ff/base/utils/uuid/Seq.java diff --git a/ff-base/src/main/java/com/ff/base/utils/uuid/UUID.java b/ff-game/src/main/java/com/ff/base/utils/uuid/UUID.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/utils/uuid/UUID.java rename to ff-game/src/main/java/com/ff/base/utils/uuid/UUID.java diff --git a/ff-base/src/main/java/com/ff/base/web/domain/server/Cpu.java b/ff-game/src/main/java/com/ff/base/web/domain/server/Cpu.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/domain/server/Cpu.java rename to ff-game/src/main/java/com/ff/base/web/domain/server/Cpu.java diff --git a/ff-base/src/main/java/com/ff/base/web/domain/server/Jvm.java b/ff-game/src/main/java/com/ff/base/web/domain/server/Jvm.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/domain/server/Jvm.java rename to ff-game/src/main/java/com/ff/base/web/domain/server/Jvm.java diff --git a/ff-base/src/main/java/com/ff/base/web/domain/server/Mem.java b/ff-game/src/main/java/com/ff/base/web/domain/server/Mem.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/domain/server/Mem.java rename to ff-game/src/main/java/com/ff/base/web/domain/server/Mem.java diff --git a/ff-base/src/main/java/com/ff/base/web/domain/server/Sys.java b/ff-game/src/main/java/com/ff/base/web/domain/server/Sys.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/domain/server/Sys.java rename to ff-game/src/main/java/com/ff/base/web/domain/server/Sys.java diff --git a/ff-base/src/main/java/com/ff/base/web/domain/server/SysFile.java b/ff-game/src/main/java/com/ff/base/web/domain/server/SysFile.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/domain/server/SysFile.java rename to ff-game/src/main/java/com/ff/base/web/domain/server/SysFile.java diff --git a/ff-base/src/main/java/com/ff/base/web/exception/GlobalExceptionHandler.java b/ff-game/src/main/java/com/ff/base/web/exception/GlobalExceptionHandler.java similarity index 99% rename from ff-base/src/main/java/com/ff/base/web/exception/GlobalExceptionHandler.java rename to ff-game/src/main/java/com/ff/base/web/exception/GlobalExceptionHandler.java index 298e992..d334136 100644 --- a/ff-base/src/main/java/com/ff/base/web/exception/GlobalExceptionHandler.java +++ b/ff-game/src/main/java/com/ff/base/web/exception/GlobalExceptionHandler.java @@ -6,7 +6,6 @@ import com.ff.base.core.text.Convert; import com.ff.base.exception.DemoModeException; import com.ff.base.exception.ServiceException; import com.ff.base.exception.base.ApiException; -import com.ff.base.exception.base.BaseException; import com.ff.base.utils.StringUtils; import com.ff.base.utils.html.EscapeUtil; import org.slf4j.Logger; diff --git a/ff-base/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java b/ff-game/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java similarity index 96% rename from ff-base/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java rename to ff-game/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java index 4141c64..7b780fe 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java @@ -7,11 +7,9 @@ import com.ff.base.exception.ServiceException; import com.ff.base.system.domain.SysRole; import com.ff.base.system.domain.SysUser; import com.ff.base.system.domain.TenantAgent; -import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.service.ISysMenuService; import com.ff.base.system.service.ISysRoleService; import com.ff.base.system.service.ITenantAgentService; -import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.StringUtils; import org.slf4j.Logger; diff --git a/ff-base/src/main/java/com/ff/base/web/service/PermissionService.java b/ff-game/src/main/java/com/ff/base/web/service/PermissionService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/service/PermissionService.java rename to ff-game/src/main/java/com/ff/base/web/service/PermissionService.java index 5ac8c15..348dac3 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/PermissionService.java +++ b/ff-game/src/main/java/com/ff/base/web/service/PermissionService.java @@ -1,11 +1,11 @@ package com.ff.base.web.service; import com.ff.base.constant.Constants; -import com.ff.base.system.domain.SysRole; import com.ff.base.core.domain.model.LoginUser; +import com.ff.base.security.context.PermissionContextHolder; +import com.ff.base.system.domain.SysRole; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.StringUtils; -import com.ff.base.security.context.PermissionContextHolder; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; diff --git a/ff-base/src/main/java/com/ff/base/web/service/SysLoginService.java b/ff-game/src/main/java/com/ff/base/web/service/SysLoginService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/service/SysLoginService.java rename to ff-game/src/main/java/com/ff/base/web/service/SysLoginService.java index e6abc57..48b4432 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/SysLoginService.java +++ b/ff-game/src/main/java/com/ff/base/web/service/SysLoginService.java @@ -4,21 +4,21 @@ import com.ff.base.constant.CacheConstants; import com.ff.base.constant.Constants; import com.ff.base.constant.UserConstants; import com.ff.base.core.domain.model.LoginForm; -import com.ff.base.enums.LoginType; -import com.ff.base.system.domain.SysUser; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.core.redis.RedisCache; +import com.ff.base.enums.LoginType; import com.ff.base.exception.ServiceException; import com.ff.base.exception.user.*; +import com.ff.base.manager.AsyncManager; +import com.ff.base.manager.factory.AsyncFactory; +import com.ff.base.security.context.AuthenticationContextHolder; +import com.ff.base.system.domain.SysUser; +import com.ff.base.system.service.ISysConfigService; +import com.ff.base.system.service.ISysUserService; import com.ff.base.utils.DateUtils; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.StringUtils; import com.ff.base.utils.ip.IpUtils; -import com.ff.base.manager.AsyncManager; -import com.ff.base.manager.factory.AsyncFactory; -import com.ff.base.security.context.AuthenticationContextHolder; -import com.ff.base.system.service.ISysConfigService; -import com.ff.base.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; diff --git a/ff-base/src/main/java/com/ff/base/web/service/SysPasswordService.java b/ff-game/src/main/java/com/ff/base/web/service/SysPasswordService.java similarity index 98% rename from ff-base/src/main/java/com/ff/base/web/service/SysPasswordService.java rename to ff-game/src/main/java/com/ff/base/web/service/SysPasswordService.java index a39b934..446b5e0 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/SysPasswordService.java +++ b/ff-game/src/main/java/com/ff/base/web/service/SysPasswordService.java @@ -2,12 +2,11 @@ package com.ff.base.web.service; import com.ff.base.constant.CacheConstants; import com.ff.base.core.domain.model.LoginForm; -import com.ff.base.system.domain.SysUser; import com.ff.base.core.redis.RedisCache; import com.ff.base.exception.user.UserPasswordNotMatchException; import com.ff.base.exception.user.UserPasswordRetryLimitExceedException; -import com.ff.base.utils.SecurityUtils; import com.ff.base.security.context.AuthenticationContextHolder; +import com.ff.base.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.Authentication; diff --git a/ff-base/src/main/java/com/ff/base/web/service/SysPermissionService.java b/ff-game/src/main/java/com/ff/base/web/service/SysPermissionService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/service/SysPermissionService.java rename to ff-game/src/main/java/com/ff/base/web/service/SysPermissionService.java diff --git a/ff-base/src/main/java/com/ff/base/web/service/SysRegisterService.java b/ff-game/src/main/java/com/ff/base/web/service/SysRegisterService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/service/SysRegisterService.java rename to ff-game/src/main/java/com/ff/base/web/service/SysRegisterService.java index ebb5b22..21c0ec8 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/SysRegisterService.java +++ b/ff-game/src/main/java/com/ff/base/web/service/SysRegisterService.java @@ -3,18 +3,18 @@ package com.ff.base.web.service; import com.ff.base.constant.CacheConstants; import com.ff.base.constant.Constants; import com.ff.base.constant.UserConstants; -import com.ff.base.system.domain.SysUser; import com.ff.base.core.domain.model.RegisterBody; import com.ff.base.core.redis.RedisCache; import com.ff.base.exception.user.CaptchaException; import com.ff.base.exception.user.CaptchaExpireException; +import com.ff.base.manager.AsyncManager; +import com.ff.base.manager.factory.AsyncFactory; +import com.ff.base.system.domain.SysUser; +import com.ff.base.system.service.ISysConfigService; +import com.ff.base.system.service.ISysUserService; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.StringUtils; -import com.ff.base.manager.AsyncManager; -import com.ff.base.manager.factory.AsyncFactory; -import com.ff.base.system.service.ISysConfigService; -import com.ff.base.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/ff-base/src/main/java/com/ff/base/web/service/TenantDetailsServiceImpl.java b/ff-game/src/main/java/com/ff/base/web/service/TenantDetailsServiceImpl.java similarity index 94% rename from ff-base/src/main/java/com/ff/base/web/service/TenantDetailsServiceImpl.java rename to ff-game/src/main/java/com/ff/base/web/service/TenantDetailsServiceImpl.java index be58a7c..880db5c 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/TenantDetailsServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/web/service/TenantDetailsServiceImpl.java @@ -3,20 +3,17 @@ package com.ff.base.web.service; import com.ff.base.constant.Constants; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.enums.LoginType; -import com.ff.base.enums.UserStatus; import com.ff.base.exception.ServiceException; import com.ff.base.system.domain.SysRole; import com.ff.base.system.domain.SysUser; import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.service.ISysMenuService; import com.ff.base.system.service.ISysRoleService; -import com.ff.base.system.service.ISysUserService; import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; @@ -24,7 +21,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; -import java.util.Set; /** * 用户验证处理 diff --git a/ff-base/src/main/java/com/ff/base/web/service/TokenService.java b/ff-game/src/main/java/com/ff/base/web/service/TokenService.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/service/TokenService.java rename to ff-game/src/main/java/com/ff/base/web/service/TokenService.java diff --git a/ff-base/src/main/java/com/ff/base/web/service/UserDetailsServiceImpl.java b/ff-game/src/main/java/com/ff/base/web/service/UserDetailsServiceImpl.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/web/service/UserDetailsServiceImpl.java rename to ff-game/src/main/java/com/ff/base/web/service/UserDetailsServiceImpl.java index 8462600..c57d59e 100644 --- a/ff-base/src/main/java/com/ff/base/web/service/UserDetailsServiceImpl.java +++ b/ff-game/src/main/java/com/ff/base/web/service/UserDetailsServiceImpl.java @@ -1,13 +1,13 @@ package com.ff.base.web.service; -import com.ff.base.enums.LoginType; -import com.ff.base.system.domain.SysUser; import com.ff.base.core.domain.model.LoginUser; +import com.ff.base.enums.LoginType; import com.ff.base.enums.UserStatus; import com.ff.base.exception.ServiceException; +import com.ff.base.system.domain.SysUser; +import com.ff.base.system.service.ISysUserService; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.StringUtils; -import com.ff.base.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ff-base/src/main/java/com/ff/base/xss/Xss.java b/ff-game/src/main/java/com/ff/base/xss/Xss.java similarity index 94% rename from ff-base/src/main/java/com/ff/base/xss/Xss.java rename to ff-game/src/main/java/com/ff/base/xss/Xss.java index 5bbc1ff..0e3c970 100644 --- a/ff-base/src/main/java/com/ff/base/xss/Xss.java +++ b/ff-game/src/main/java/com/ff/base/xss/Xss.java @@ -1,7 +1,5 @@ package com.ff.base.xss; -import com.ff.base.xss.XssValidator; - import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.ElementType; diff --git a/ff-base/src/main/java/com/ff/base/xss/XssValidator.java b/ff-game/src/main/java/com/ff/base/xss/XssValidator.java similarity index 100% rename from ff-base/src/main/java/com/ff/base/xss/XssValidator.java rename to ff-game/src/main/java/com/ff/base/xss/XssValidator.java diff --git a/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaController.java b/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaController.java index efed705..273d775 100644 --- a/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaController.java +++ b/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaController.java @@ -1,25 +1,19 @@ package com.ff.common.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ff.base.annotation.Log; import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.BusinessType; -import com.ff.common.domain.TenantGameQuota; -import com.ff.common.service.ITenantGameQuotaService; -import com.ff.base.utils.poi.ExcelUtil; import com.ff.base.core.page.TableDataInfo; +import com.ff.base.enums.BusinessType; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.common.domain.TenantGameQuota; +import com.ff.tenant.service.ITenantGameQuotaService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 租户游戏配额Controller @@ -29,8 +23,7 @@ import com.ff.base.core.page.TableDataInfo; */ @RestController @RequestMapping("/common/quota") -public class TenantGameQuotaController extends BaseController -{ +public class TenantGameQuotaController extends BaseController { @Autowired private ITenantGameQuotaService tenantGameQuotaService; @@ -39,8 +32,7 @@ public class TenantGameQuotaController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:quota:list')") @GetMapping("/list") - public TableDataInfo list(TenantGameQuota tenantGameQuota) - { + public TableDataInfo list(TenantGameQuota tenantGameQuota) { startPage(); List list = tenantGameQuotaService.selectTenantGameQuotaList(tenantGameQuota); return getDataTable(list); @@ -52,8 +44,7 @@ public class TenantGameQuotaController extends BaseController @PreAuthorize("@ss.hasPermi('common:quota:export')") @Log(title = "租户游戏配额", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, TenantGameQuota tenantGameQuota) - { + public void export(HttpServletResponse response, TenantGameQuota tenantGameQuota) { List list = tenantGameQuotaService.selectTenantGameQuotaList(tenantGameQuota); ExcelUtil util = new ExcelUtil(TenantGameQuota.class); util.exportExcel(response, list, "租户游戏配额数据"); @@ -64,8 +55,7 @@ public class TenantGameQuotaController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:quota:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(tenantGameQuotaService.selectTenantGameQuotaById(id)); } @@ -75,8 +65,7 @@ public class TenantGameQuotaController extends BaseController @PreAuthorize("@ss.hasPermi('common:quota:add')") @Log(title = "租户游戏配额", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody TenantGameQuota tenantGameQuota) - { + public AjaxResult add(@RequestBody TenantGameQuota tenantGameQuota) { return toAjax(tenantGameQuotaService.insertTenantGameQuota(tenantGameQuota)); } @@ -86,8 +75,7 @@ public class TenantGameQuotaController extends BaseController @PreAuthorize("@ss.hasPermi('common:quota:edit')") @Log(title = "租户游戏配额", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody TenantGameQuota tenantGameQuota) - { + public AjaxResult edit(@RequestBody TenantGameQuota tenantGameQuota) { return toAjax(tenantGameQuotaService.updateTenantGameQuota(tenantGameQuota)); } @@ -96,9 +84,8 @@ public class TenantGameQuotaController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:quota:remove')") @Log(title = "租户游戏配额", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(tenantGameQuotaService.deleteTenantGameQuotaByIds(ids)); } } diff --git a/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java b/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java index b2ac893..9ffee0c 100644 --- a/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java +++ b/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java @@ -1,25 +1,19 @@ package com.ff.common.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ff.base.annotation.Log; import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.BusinessType; -import com.ff.common.domain.TenantGameQuotaFlow; -import com.ff.common.service.ITenantGameQuotaFlowService; -import com.ff.base.utils.poi.ExcelUtil; import com.ff.base.core.page.TableDataInfo; +import com.ff.base.enums.BusinessType; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.common.domain.TenantGameQuotaFlow; +import com.ff.tenant.service.ITenantGameQuotaFlowService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 租户游戏额度流水Controller @@ -29,8 +23,7 @@ import com.ff.base.core.page.TableDataInfo; */ @RestController @RequestMapping("/common/flow") -public class TenantGameQuotaFlowController extends BaseController -{ +public class TenantGameQuotaFlowController extends BaseController { @Autowired private ITenantGameQuotaFlowService tenantGameQuotaFlowService; @@ -39,8 +32,7 @@ public class TenantGameQuotaFlowController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:flow:list')") @GetMapping("/list") - public TableDataInfo list(TenantGameQuotaFlow tenantGameQuotaFlow) - { + public TableDataInfo list(TenantGameQuotaFlow tenantGameQuotaFlow) { startPage(); List list = tenantGameQuotaFlowService.selectTenantGameQuotaFlowList(tenantGameQuotaFlow); return getDataTable(list); @@ -52,8 +44,7 @@ public class TenantGameQuotaFlowController extends BaseController @PreAuthorize("@ss.hasPermi('common:flow:export')") @Log(title = "租户游戏额度流水", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, TenantGameQuotaFlow tenantGameQuotaFlow) - { + public void export(HttpServletResponse response, TenantGameQuotaFlow tenantGameQuotaFlow) { List list = tenantGameQuotaFlowService.selectTenantGameQuotaFlowList(tenantGameQuotaFlow); ExcelUtil util = new ExcelUtil(TenantGameQuotaFlow.class); util.exportExcel(response, list, "租户游戏额度流水数据"); @@ -64,8 +55,7 @@ public class TenantGameQuotaFlowController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:flow:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(tenantGameQuotaFlowService.selectTenantGameQuotaFlowById(id)); } @@ -75,8 +65,7 @@ public class TenantGameQuotaFlowController extends BaseController @PreAuthorize("@ss.hasPermi('common:flow:add')") @Log(title = "租户游戏额度流水", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody TenantGameQuotaFlow tenantGameQuotaFlow) - { + public AjaxResult add(@RequestBody TenantGameQuotaFlow tenantGameQuotaFlow) { return toAjax(tenantGameQuotaFlowService.insertTenantGameQuotaFlow(tenantGameQuotaFlow)); } @@ -86,8 +75,7 @@ public class TenantGameQuotaFlowController extends BaseController @PreAuthorize("@ss.hasPermi('common:flow:edit')") @Log(title = "租户游戏额度流水", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody TenantGameQuotaFlow tenantGameQuotaFlow) - { + public AjaxResult edit(@RequestBody TenantGameQuotaFlow tenantGameQuotaFlow) { return toAjax(tenantGameQuotaFlowService.updateTenantGameQuotaFlow(tenantGameQuotaFlow)); } @@ -96,9 +84,8 @@ public class TenantGameQuotaFlowController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:flow:remove')") @Log(title = "租户游戏额度流水", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(tenantGameQuotaFlowService.deleteTenantGameQuotaFlowByIds(ids)); } } diff --git a/ff-game/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java b/ff-game/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java index 662b270..8a75d14 100644 --- a/ff-game/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java +++ b/ff-game/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java @@ -1,25 +1,19 @@ package com.ff.common.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ff.base.annotation.Log; import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.BusinessType; -import com.ff.common.domain.TenantQuotaExchange; -import com.ff.common.service.ITenantQuotaExchangeService; -import com.ff.base.utils.poi.ExcelUtil; import com.ff.base.core.page.TableDataInfo; +import com.ff.base.enums.BusinessType; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.common.domain.TenantQuotaExchange; +import com.ff.tenant.service.ITenantQuotaExchangeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 币种汇率Controller @@ -29,8 +23,7 @@ import com.ff.base.core.page.TableDataInfo; */ @RestController @RequestMapping("/common/exchange") -public class TenantQuotaExchangeController extends BaseController -{ +public class TenantQuotaExchangeController extends BaseController { @Autowired private ITenantQuotaExchangeService tenantQuotaExchangeService; @@ -39,8 +32,7 @@ public class TenantQuotaExchangeController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:exchange:list')") @GetMapping("/list") - public TableDataInfo list(TenantQuotaExchange tenantQuotaExchange) - { + public TableDataInfo list(TenantQuotaExchange tenantQuotaExchange) { startPage(); List list = tenantQuotaExchangeService.selectTenantQuotaExchangeList(tenantQuotaExchange); return getDataTable(list); @@ -52,8 +44,7 @@ public class TenantQuotaExchangeController extends BaseController @PreAuthorize("@ss.hasPermi('common:exchange:export')") @Log(title = "币种汇率", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, TenantQuotaExchange tenantQuotaExchange) - { + public void export(HttpServletResponse response, TenantQuotaExchange tenantQuotaExchange) { List list = tenantQuotaExchangeService.selectTenantQuotaExchangeList(tenantQuotaExchange); ExcelUtil util = new ExcelUtil(TenantQuotaExchange.class); util.exportExcel(response, list, "币种汇率数据"); @@ -64,8 +55,7 @@ public class TenantQuotaExchangeController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:exchange:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(tenantQuotaExchangeService.selectTenantQuotaExchangeById(id)); } @@ -75,8 +65,7 @@ public class TenantQuotaExchangeController extends BaseController @PreAuthorize("@ss.hasPermi('common:exchange:add')") @Log(title = "币种汇率", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody TenantQuotaExchange tenantQuotaExchange) - { + public AjaxResult add(@RequestBody TenantQuotaExchange tenantQuotaExchange) { return toAjax(tenantQuotaExchangeService.insertTenantQuotaExchange(tenantQuotaExchange)); } @@ -86,8 +75,7 @@ public class TenantQuotaExchangeController extends BaseController @PreAuthorize("@ss.hasPermi('common:exchange:edit')") @Log(title = "币种汇率", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody TenantQuotaExchange tenantQuotaExchange) - { + public AjaxResult edit(@RequestBody TenantQuotaExchange tenantQuotaExchange) { return toAjax(tenantQuotaExchangeService.updateTenantQuotaExchange(tenantQuotaExchange)); } @@ -96,9 +84,8 @@ public class TenantQuotaExchangeController extends BaseController */ @PreAuthorize("@ss.hasPermi('common:exchange:remove')") @Log(title = "币种汇率", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(tenantQuotaExchangeService.deleteTenantQuotaExchangeByIds(ids)); } } diff --git a/ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java b/ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java index ae9260b..123a8e0 100644 --- a/ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java +++ b/ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java @@ -1,14 +1,11 @@ package com.ff.common.dto; import com.ff.game.api.request.GamesBaseRequestDTO; -import io.swagger.models.auth.In; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.math.BigDecimal; @@ -26,7 +23,6 @@ public class GameBalanceExchange extends GamesBaseRequestDTO implements Serializ private final static long serialVersionUID = 3452954102791311247L; - /** * 平台代码 */ @@ -56,10 +52,12 @@ public class GameBalanceExchange extends GamesBaseRequestDTO implements Serializ /** * 账户 */ - private String account; + private String account; - /** 租户key */ + /** + * 租户key + */ private String tenantKey; /** diff --git a/ff-game/src/main/java/com/ff/common/service/ICurrencyService.java b/ff-game/src/main/java/com/ff/common/service/ICurrencyService.java index b8c94f4..dc738e1 100644 --- a/ff-game/src/main/java/com/ff/common/service/ICurrencyService.java +++ b/ff-game/src/main/java/com/ff/common/service/ICurrencyService.java @@ -1,8 +1,9 @@ package com.ff.common.service; -import java.util.List; import com.ff.common.domain.Currency; +import java.util.List; + /** * 币种Service接口 * diff --git a/ff-game/src/main/java/com/ff/common/service/ILangService.java b/ff-game/src/main/java/com/ff/common/service/ILangService.java index d28a5d2..9c9e2b6 100644 --- a/ff-game/src/main/java/com/ff/common/service/ILangService.java +++ b/ff-game/src/main/java/com/ff/common/service/ILangService.java @@ -1,8 +1,9 @@ package com.ff.common.service; -import java.util.List; import com.ff.common.domain.Lang; +import java.util.List; + /** * 系统语种管理 Service接口 * diff --git a/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaService.java b/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaService.java deleted file mode 100644 index a043dd2..0000000 --- a/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaService.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.ff.common.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.ff.agent.dto.AgentCreateTenantDTO; -import com.ff.common.domain.TenantGameQuota; -import com.ff.common.dto.BalanceChangesDTO; -import com.ff.common.dto.BalanceRealChangesDTO; -import com.ff.common.dto.GameBalanceExchange; -import org.apache.ibatis.annotations.Param; - -/** - * 租户游戏配额Service接口 - * - * @author shi - * @date 2025-02-12 - */ -public interface ITenantGameQuotaService -{ - /** - * 查询租户游戏配额 - * - * @param id 租户游戏配额主键 - * @return 租户游戏配额 - */ - TenantGameQuota selectTenantGameQuotaById(Long id); - - - - /** - * 查询租户游戏配额列表 - * - * @param tenantGameQuota 租户游戏配额 - * @return 租户游戏配额集合 - */ - List selectTenantGameQuotaList(TenantGameQuota tenantGameQuota); - - /** - * 新增租户游戏配额 - * - * @param tenantGameQuota 租户游戏配额 - * @return 结果 - */ - int insertTenantGameQuota(TenantGameQuota tenantGameQuota); - - /** - * 修改租户游戏配额 - * - * @param tenantGameQuota 租户游戏配额 - * @return 结果 - */ - int updateTenantGameQuota(TenantGameQuota tenantGameQuota); - - /** - * 批量删除租户游戏配额 - * - * @param ids 需要删除的租户游戏配额主键集合 - * @return 结果 - */ - int deleteTenantGameQuotaByIds(Long[] ids); - - /** - * 删除租户游戏配额信息 - * - * @param id 租户游戏配额主键 - * @return 结果 - */ - int deleteTenantGameQuotaById(Long id); - - /** - * 余额变化 - * - * @param balanceChangesDTO 余额更改为 - * @return {@link Boolean } - */ - Boolean balanceChanges(BalanceChangesDTO balanceChangesDTO); - - - - /** - * 真实余额变化 - * - * @param balanceRealChangesDTO 余额更改为 - * @return {@link Boolean } - */ - Boolean balanceRealChanges(BalanceRealChangesDTO balanceRealChangesDTO); - - /** - * 游戏余额兑换 - * - * @param gameBalanceExchange 游戏余额兑换 - * @return {@link BigDecimal } - */ - BigDecimal gameBalanceExchange(GameBalanceExchange gameBalanceExchange); - - /** - * 查询租户游戏配额 - * - * @param tenantKey 租户游戏配额主键 - * @return 租户游戏配额 - */ - TenantGameQuota selectTenantGameQuotaByTenantKey(String tenantKey, String quotaType); -} diff --git a/ff-game/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java index 545bf81..3791abc 100644 --- a/ff-game/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java +++ b/ff-game/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java @@ -1,14 +1,14 @@ package com.ff.common.service.impl; -import java.util.List; - import cn.hutool.core.util.IdUtil; import com.ff.base.utils.DateUtils; +import com.ff.common.domain.Currency; +import com.ff.common.mapper.CurrencyMapper; +import com.ff.common.service.ICurrencyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.common.mapper.CurrencyMapper; -import com.ff.common.domain.Currency; -import com.ff.common.service.ICurrencyService; + +import java.util.List; /** * 币种Service业务层处理 diff --git a/ff-game/src/main/java/com/ff/common/service/impl/LangServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/LangServiceImpl.java index 3e78305..0e4ed50 100644 --- a/ff-game/src/main/java/com/ff/common/service/impl/LangServiceImpl.java +++ b/ff-game/src/main/java/com/ff/common/service/impl/LangServiceImpl.java @@ -1,14 +1,14 @@ package com.ff.common.service.impl; -import java.util.List; - import cn.hutool.core.util.IdUtil; import com.ff.base.utils.DateUtils; +import com.ff.common.domain.Lang; +import com.ff.common.mapper.LangMapper; +import com.ff.common.service.ILangService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ff.common.mapper.LangMapper; -import com.ff.common.domain.Lang; -import com.ff.common.service.ILangService; + +import java.util.List; /** * 系统语种管理 Service业务层处理 diff --git a/ff-game/src/main/java/com/ff/config/ContentRefreshedEventListener.java b/ff-game/src/main/java/com/ff/config/ContentRefreshedEventListener.java index a1964ef..6e943b9 100644 --- a/ff-game/src/main/java/com/ff/config/ContentRefreshedEventListener.java +++ b/ff-game/src/main/java/com/ff/config/ContentRefreshedEventListener.java @@ -5,6 +5,7 @@ import com.ff.base.system.domain.SysDatasource; import com.ff.base.system.mapper.SysDatasourceMapper; import com.ff.base.system.service.ISysConfigService; import com.ff.base.system.service.ISysDictTypeService; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -38,6 +39,10 @@ public class ContentRefreshedEventListener implements ApplicationListener securitySchemes() - { - List apiKeyList = new ArrayList(); - apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); - return apiKeyList; - } - - /** - * 安全上下文 - */ - private List securityContexts() - { - List securityContexts = new ArrayList<>(); - securityContexts.add( - SecurityContext.builder() - .securityReferences(defaultAuth()) - .operationSelector(o -> o.requestMappingPattern().matches("/.*")) - .build()); - return securityContexts; - } - - /** - * 默认的安全上引用 - */ - private List defaultAuth() - { - AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); - AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; - authorizationScopes[0] = authorizationScope; - List securityReferences = new ArrayList<>(); - securityReferences.add(new SecurityReference("Authorization", authorizationScopes)); - return securityReferences; - } - - /** - * 添加摘要信息 - */ - private ApiInfo apiInfo() - { - // 用ApiInfoBuilder进行定制 - return new ApiInfoBuilder() - // 设置标题 - .title("标题:FF管理系统_接口文档") - // 描述 - .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") - // 作者信息 - .contact(new Contact(ffConfig.getName(), null, null)) - // 版本 - .version("版本号:" + ffConfig.getVersion()) - .build(); - } -} diff --git a/ff-game/src/main/java/com/ff/game/api/ae/address/MyAEAddressSource.java b/ff-game/src/main/java/com/ff/game/api/ae/address/MyAEAddressSource.java index 01a76ab..3fc6a0c 100644 --- a/ff-game/src/main/java/com/ff/game/api/ae/address/MyAEAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/ae/address/MyAEAddressSource.java @@ -4,7 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.IPlatformBiz; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -20,11 +20,11 @@ import javax.annotation.Resource; public class MyAEAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformBiz; @Override public ForestAddress getAddress(ForestRequest request) { - String apiBaseUrl = platformService.get(GamePlatforms.AE.getCode()) + String apiBaseUrl = platformBiz.get(GamePlatforms.AE.getCode()) .getUrlInfo().getUrl(); return new ForestAddress("https", apiBaseUrl, 443, ""); } diff --git a/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java index 7804bda..9a2f2d5 100644 --- a/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/ae/impl/GamesAEServiceImpl.java @@ -13,8 +13,6 @@ import com.ff.base.utils.DateUtils; import com.ff.base.utils.JsonUtil; import com.ff.base.utils.StringUtils; import com.ff.base.utils.uuid.IdUtils; -import com.ff.common.dto.GameBalanceExchange; -import com.ff.common.service.ITenantGameQuotaService; import com.ff.config.KeyConfig; import com.ff.delay.DelayService; import com.ff.delay.DelayTask; @@ -22,7 +20,6 @@ import com.ff.game.api.IGamesService; import com.ff.game.api.ae.client.AEClient; import com.ff.game.api.ae.dto.*; import com.ff.game.api.request.*; -import com.ff.game.api.sv388.impl.SV388GamesServiceImpl; import com.ff.game.api.xk.dto.XKKickMemberDTO; import com.ff.game.domain.*; import com.ff.game.service.IGameBettingDetailsService; @@ -30,6 +27,7 @@ import com.ff.game.service.IGameExchangeMoneyService; import com.ff.game.service.IGameService; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; +import com.ff.tenant.service.ITenantGameQuotaService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -271,7 +269,7 @@ public class GamesAEServiceImpl implements IGamesService { params.put("withdrawType", 1); deposit = AEClient.withdraw(params); } - }finally { + } finally { BigDecimal coinBefore; if (TransferType.GAMES.getCode().equals(exchangeTransferMoneyRequestDTO.getTransferType())) { coinBefore = NumberUtil.sub(deposit.getCurrentBalance(), deposit.getAmount()); @@ -333,7 +331,6 @@ public class GamesAEServiceImpl implements IGamesService { } - return ExchangeTransferStatusResponseDTO.builder() .statusType(status) .balance(exchangeTransferStatusResponse.getTransferAmount()) diff --git a/ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java b/ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java index f32e3a0..89aff8d 100644 --- a/ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java +++ b/ff-game/src/main/java/com/ff/game/api/db/address/DBSportsAddress.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -21,7 +22,7 @@ import javax.annotation.Resource; public class DBSportsAddress implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/dg/address/MyDGAddressSource.java b/ff-game/src/main/java/com/ff/game/api/dg/address/MyDGAddressSource.java index b98459f..1e185d8 100644 --- a/ff-game/src/main/java/com/ff/game/api/dg/address/MyDGAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/dg/address/MyDGAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,11 +21,11 @@ import javax.annotation.Resource; public class MyDGAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformBiz; @Override public ForestAddress getAddress(ForestRequest request) { - String apiBaseUrl = platformService.get(GamePlatforms.DG.getCode()) + String apiBaseUrl = platformBiz.get(GamePlatforms.DG.getCode()) .getUrlInfo().getUrl(); return new ForestAddress("http", apiBaseUrl, 80, ""); } diff --git a/ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java b/ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java index 86974ec..43bc410 100644 --- a/ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java +++ b/ff-game/src/main/java/com/ff/game/api/fb/address/FBSportsAddress.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -19,7 +20,7 @@ import javax.annotation.Resource; public class FBSportsAddress implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/fc/address/MyFCAddressSource.java b/ff-game/src/main/java/com/ff/game/api/fc/address/MyFCAddressSource.java index 529c7c9..d2fd403 100644 --- a/ff-game/src/main/java/com/ff/game/api/fc/address/MyFCAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/fc/address/MyFCAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -13,7 +14,7 @@ import javax.annotation.Resource; public class MyFCAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override diff --git a/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java index 3e39e79..c229ec9 100644 --- a/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/fc/impl/GamesFCServiceImpl.java @@ -19,10 +19,7 @@ import com.ff.game.api.fc.client.FCClient; import com.ff.game.api.fc.dto.*; import com.ff.game.api.request.*; import com.ff.game.domain.*; -import com.ff.game.service.IGameBettingDetailsService; -import com.ff.game.service.IGameExchangeMoneyService; -import com.ff.game.service.IGameService; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.*; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; import lombok.extern.slf4j.Slf4j; @@ -60,6 +57,8 @@ public class GamesFCServiceImpl implements IGamesService { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; + @Resource + private IGameExchangeMoneyBiz gameExchangeMoneyBiz; @Resource private IGameService gameService; diff --git a/ff-game/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java b/ff-game/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java index 592bae2..7d645c7 100644 --- a/ff-game/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,7 +21,7 @@ import javax.annotation.Resource; public class MyJILIAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java index ed3cb96..469d061 100644 --- a/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java @@ -15,15 +15,11 @@ import com.ff.base.utils.sign.Md5Utils; import com.ff.base.utils.uuid.IdUtils; import com.ff.config.KeyConfig; import com.ff.game.api.IGamesService; -import com.ff.game.api.fc.dto.ApiCFBalanceTransferStatusResponseDTO; import com.ff.game.api.jili.client.JILIClient; import com.ff.game.api.jili.dto.*; import com.ff.game.api.request.*; import com.ff.game.domain.*; -import com.ff.game.service.IGameBettingDetailsService; -import com.ff.game.service.IGameExchangeMoneyService; -import com.ff.game.service.IGameFreeRecordService; -import com.ff.game.service.IGameService; +import com.ff.game.service.*; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; import lombok.extern.slf4j.Slf4j; @@ -63,6 +59,8 @@ public class GamesJILIServiceImpl implements IGamesService { @Resource private IGameService gameService; + @Resource + private IGameBiz gameBiz; @Resource @@ -494,7 +492,7 @@ public class GamesJILIServiceImpl implements IGamesService { List gameIds = createFreeSpinRequest.getGameIds(); GameUniqueDTO gameUniqueDTO = new GameUniqueDTO(); gameUniqueDTO.setGameIds(gameIds); - List gameList = gameService.selectGameUniqueList(gameUniqueDTO); + List gameList = gameBiz.selectGameUniqueList(gameUniqueDTO); String gameCodes = gameList.stream() .map(Game::getGameCode) .map(String::valueOf) diff --git a/ff-game/src/main/java/com/ff/game/api/km/address/MyKMAddressSource.java b/ff-game/src/main/java/com/ff/game/api/km/address/MyKMAddressSource.java index c93baab..01f35d3 100644 --- a/ff-game/src/main/java/com/ff/game/api/km/address/MyKMAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/km/address/MyKMAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,7 +21,7 @@ import javax.annotation.Resource; public class MyKMAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java index f510799..1f52ce9 100644 --- a/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/km/impl/GamesKMServiceImpl.java @@ -22,10 +22,7 @@ import com.ff.game.api.km.dto.*; import com.ff.game.api.request.*; import com.ff.game.api.xk.dto.XKGamesDTO; import com.ff.game.domain.*; -import com.ff.game.service.IGameBettingDetailsService; -import com.ff.game.service.IGameExchangeMoneyService; -import com.ff.game.service.IGameService; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.*; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; import lombok.extern.slf4j.Slf4j; @@ -55,6 +52,8 @@ public class GamesKMServiceImpl implements IGamesService { @Resource private IPlatformService platformService; + @Resource + private IPlatformBiz platformBiz; @Resource private RedisCache redisCache; @@ -191,7 +190,7 @@ public class GamesKMServiceImpl implements IGamesService { kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount()); } - String loginUrl = platformService.get(GamePlatforms.KM.getCode()).getUrlInfo().getLoginUrl(); + String loginUrl = platformBiz.get(GamePlatforms.KM.getCode()).getUrlInfo().getLoginUrl(); return loginUrl + "/gamelauncher?gpcode=" + gamesLogin.getGameType() + "&gcode=" + gamesLogin.getGameId() @@ -589,7 +588,7 @@ public class GamesKMServiceImpl implements IGamesService { log.info("GamesKMServiceImpl [gameDemoLogin] 请求参数 {}", gameDemoLoginRequestDTO); Map params = new LinkedHashMap<>(); params.put("lang", gameDemoLoginRequestDTO.getLang()); - String loginUrl = platformService.get(GamePlatforms.KM.getCode()).getUrlInfo().getLoginUrl(); + String loginUrl = platformBiz.get(GamePlatforms.KM.getCode()).getUrlInfo().getLoginUrl(); //String selectConfigByKey = configService.selectConfigByKey(Constants.KM_API_BASE_LOGIN_URL); return GameDemoLoginResponseDTO.builder() .url(loginUrl + "/demolauncher?gpcode=" + gameDemoLoginRequestDTO.getGameType() diff --git a/ff-game/src/main/java/com/ff/game/api/meitian/address/MeiTianAddressSource.java b/ff-game/src/main/java/com/ff/game/api/meitian/address/MeiTianAddressSource.java index 299414b..470a8c0 100644 --- a/ff-game/src/main/java/com/ff/game/api/meitian/address/MeiTianAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/meitian/address/MeiTianAddressSource.java @@ -4,7 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.IPlatformBiz; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -18,7 +18,7 @@ import javax.annotation.Resource; public class MeiTianAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/ng/address/MyNGAddressSource.java b/ff-game/src/main/java/com/ff/game/api/ng/address/MyNGAddressSource.java index 3a6b35a..59b43d3 100644 --- a/ff-game/src/main/java/com/ff/game/api/ng/address/MyNGAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/ng/address/MyNGAddressSource.java @@ -4,7 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.IPlatformBiz; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -13,7 +13,7 @@ import javax.annotation.Resource; public class MyNGAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override diff --git a/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java index 8109635..f99c8c0 100644 --- a/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/ng/service/impl/GamesPGServiceImpl.java @@ -22,9 +22,7 @@ import com.ff.game.api.request.*; import com.ff.game.domain.*; import com.ff.game.dto.GameBettingDetailsDTO; import com.ff.game.dto.GameDTO; -import com.ff.game.service.IGameBettingDetailsService; -import com.ff.game.service.IGameExchangeMoneyService; -import com.ff.game.service.IGameService; +import com.ff.game.service.*; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; import lombok.extern.slf4j.Slf4j; @@ -68,9 +66,13 @@ public class GamesPGServiceImpl implements IGamesService { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; + @Resource + private IGameExchangeMoneyBiz gameExchangeMoneyBiz; @Resource private IGameService gameService; + @Resource + private IGameBiz gameBiz; @Resource @@ -692,7 +694,7 @@ public class GamesPGServiceImpl implements IGamesService { } String platform = ngPlatforms.getPlatform(); - List games = gameService.selectGameDTOList(GameDTO.builder() + List games = gameBiz.selectGameDTOList(GameDTO.builder() .gameName(resultBean.getGameName()) .platformCode(platform) .build()); diff --git a/ff-game/src/main/java/com/ff/game/api/pgt/address/MyPGTAddressSource.java b/ff-game/src/main/java/com/ff/game/api/pgt/address/MyPGTAddressSource.java index f8e4654..6386947 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgt/address/MyPGTAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/pgt/address/MyPGTAddressSource.java @@ -3,10 +3,8 @@ package com.ff.game.api.pgt.address; import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; -import com.ff.base.constant.Constants; import com.ff.base.enums.GamePlatforms; -import com.ff.base.system.service.ISysConfigService; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.IPlatformBiz; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -21,15 +19,12 @@ import javax.annotation.Resource; @Component public class MyPGTAddressSource implements AddressSource { @Resource - private IPlatformService platformService; - @Resource - private ISysConfigService configService; - + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { String apiBaseUrl = platformService.get(GamePlatforms.PGT.getCode()) .getUrlInfo().getUrl(); - return new ForestAddress("https",apiBaseUrl, 443,""); + return new ForestAddress("https", apiBaseUrl, 443, ""); } } \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java index 5a5d076..508b072 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/pgt/impl/GamesPGTServiceImpl.java @@ -67,6 +67,8 @@ public class GamesPGTServiceImpl implements IGamesService { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; + @Resource + private IGameExchangeMoneyBiz gameExchangeMoneyBiz; @Resource private IGameService gameService; diff --git a/ff-game/src/main/java/com/ff/game/api/pgx/address/MyPGXAddressSource.java b/ff-game/src/main/java/com/ff/game/api/pgx/address/MyPGXAddressSource.java index e3349d0..041a75c 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgx/address/MyPGXAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/pgx/address/MyPGXAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,7 +21,7 @@ import javax.annotation.Resource; public class MyPGXAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java index 7469ef3..9c3c973 100644 --- a/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/api/pgx/impl/GamesPGXServiceImpl.java @@ -21,6 +21,7 @@ import com.ff.game.api.pgx.dto.*; import com.ff.game.api.request.*; import com.ff.game.domain.*; import com.ff.game.service.IGameBettingDetailsService; +import com.ff.game.service.IGameExchangeMoneyBiz; import com.ff.game.service.IGameExchangeMoneyService; import com.ff.game.service.IGameService; import com.ff.member.domain.Member; @@ -62,6 +63,8 @@ public class GamesPGXServiceImpl implements IGamesService { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; + @Resource + private IGameExchangeMoneyBiz gameExchangeMoneyBiz; @Resource private IGameService gameService; diff --git a/ff-game/src/main/java/com/ff/game/api/sa/address/MySAAddressSource.java b/ff-game/src/main/java/com/ff/game/api/sa/address/MySAAddressSource.java index de51edf..77ea979 100644 --- a/ff-game/src/main/java/com/ff/game/api/sa/address/MySAAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/sa/address/MySAAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,7 +21,7 @@ import javax.annotation.Resource; public class MySAAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override diff --git a/ff-game/src/main/java/com/ff/game/api/sa/dto/SAGetAllBetDetailsResponse.java b/ff-game/src/main/java/com/ff/game/api/sa/dto/SAGetAllBetDetailsResponse.java index 4ab18b7..bd7b44e 100644 --- a/ff-game/src/main/java/com/ff/game/api/sa/dto/SAGetAllBetDetailsResponse.java +++ b/ff-game/src/main/java/com/ff/game/api/sa/dto/SAGetAllBetDetailsResponse.java @@ -2,7 +2,6 @@ package com.ff.game.api.sa.dto; import lombok.Data; -import javax.smartcardio.Card; import javax.xml.bind.annotation.*; import java.math.BigDecimal; import java.util.Date; diff --git a/ff-game/src/main/java/com/ff/game/api/sv388/address/SV388Adrress.java b/ff-game/src/main/java/com/ff/game/api/sv388/address/SV388Adrress.java index 4474614..b0bcfe4 100644 --- a/ff-game/src/main/java/com/ff/game/api/sv388/address/SV388Adrress.java +++ b/ff-game/src/main/java/com/ff/game/api/sv388/address/SV388Adrress.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,7 +21,7 @@ import javax.annotation.Resource; public class SV388Adrress implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java b/ff-game/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java index 64144db..55b95f3 100644 --- a/ff-game/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java +++ b/ff-game/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java @@ -4,6 +4,7 @@ import com.dtflys.forest.callback.AddressSource; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.ff.base.enums.GamePlatforms; +import com.ff.game.service.IPlatformBiz; import com.ff.game.service.IPlatformService; import org.springframework.stereotype.Component; @@ -20,7 +21,7 @@ import javax.annotation.Resource; public class MyXKAddressSource implements AddressSource { @Resource - private IPlatformService platformService; + private IPlatformBiz platformService; @Override public ForestAddress getAddress(ForestRequest request) { diff --git a/ff-game/src/main/java/com/ff/game/domain/GameBettingDetails.java b/ff-game/src/main/java/com/ff/game/domain/GameBettingDetails.java deleted file mode 100644 index 3853137..0000000 --- a/ff-game/src/main/java/com/ff/game/domain/GameBettingDetails.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.ff.game.domain; - -import java.math.BigDecimal; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.core.domain.BaseEntity; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * 会员投注细目对象 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; - - - /** 币种编码 */ - @Excel(name = "币种编码") - private String currencyCode; - - /** 会员id */ - @Excel(name = "会员id") - @JsonSerialize(using = ToStringSerializer.class) - private Long memberId; - - /** 游戏id */ - @Excel(name = "游戏id ") - private String gameCode; - - /** 游戏id */ - @Excel(name = "游戏id") - @JsonSerialize(using = ToStringSerializer.class) - private String gameId; - - /** 游戏类型 ff_game_type 字典 */ - @Excel(name = "游戏类型 ff_game_type 字典") - private Integer gameType; - - /** 游戏平台 */ - @Excel(name = "游戏平台 ") - private String platformCode; - - /** 游戏名称 */ - @Excel(name = "游戏名称") - private String gameName; - - /** 注单状态 1: 赢 2: 输 3: 平局 4 未知 */ - @Excel(name = "注单状态 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 - - */ - @Excel(name = "注单类型") - private Integer gameStatusType; - - /** 游戏币种类型 */ - @Excel(name = "游戏币种类型") - private String gameCurrencyCode; - - /** 游戏账号 */ - @Excel(name = "游戏账号") - private String account; - - - /** - * 局号 - */ - private String round; - - /** - * 桌号 - */ - private String table; - - /** - * 座号 - */ - private String seat; - - /** - * 投注内容,部分游戏字段内容较长,建议数据库字段类型为 text - */ - private String betContent; - - /** 游戏注单唯一值 */ - @Excel(name = "游戏注单唯一值") - private String wagersId; - - /** 投注时间 (Unix 时间戳) */ - @Excel(name = "投注时间 (Unix 时间戳)") - @JsonSerialize(using = ToStringSerializer.class) - private Long wagersTime; - - /** 投注金额 */ - @Excel(name = "投注金额") - private BigDecimal betAmount; - - /** 派彩时间 (Unix 时间戳) */ - @Excel(name = "派彩时间 (Unix 时间戳)") - @JsonSerialize(using = ToStringSerializer.class) - private Long payoffTime; - - /** 派彩金额 */ - @Excel(name = "派彩金额") - private BigDecimal payoffAmount; - - - /** 对帐时间 (Unix 时间戳) */ - @Excel(name = "对帐时间 (Unix 时间戳)") - @JsonSerialize(using = ToStringSerializer.class) - private Long settlementTime; - - /** 有效投注金额 ※注 1 */ - @Excel(name = "有效投注金额 ※注 1") - private BigDecimal turnover; - - /** 订单id */ - @Excel(name = "订单id") - private String orderNo; - - /** 结算状态 1 未结算 2已结算 3 已撤单 4 已取消 */ - @Excel(name = "结算状态 1 未结算 2已结算 3 已撤单") - private Integer settlementStatus; - - -} diff --git a/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java b/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java index 066940c..fbfab83 100644 --- a/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java +++ b/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java @@ -1,6 +1,5 @@ package com.ff.game.dto; -import com.ff.game.domain.GameBettingDetails; import com.ff.game.domain.GameExchangeMoney; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsBizMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsBizMapper.java new file mode 100644 index 0000000..f70f6cd --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsBizMapper.java @@ -0,0 +1,14 @@ +package com.ff.game.mapper; + +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.dto.GameBettingDetailsDTO; + +import java.util.List; + +/** + * @author cengy + */ +public interface GameBettingDetailsBizMapper { + + List selectGameBettingDetailsList(GameBettingDetailsDTO gameBettingDetailsDTO); +} diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameBizMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameBizMapper.java new file mode 100644 index 0000000..d0820c6 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/mapper/GameBizMapper.java @@ -0,0 +1,39 @@ +package com.ff.game.mapper; + +import com.ff.api.response.GameResponse; +import com.ff.game.api.request.GameUniqueDTO; +import com.ff.game.domain.Game; +import com.ff.game.dto.GameDTO; + +import java.util.List; + +/** + * @author cengy + */ +public interface GameBizMapper { + + /** + * 选择游戏数据列表 + * + * @param gameDTO 游戏dto + * @return {@link List }<{@link Game }> + */ + List selectGameDTOList(GameDTO gameDTO); + + /** + * 选择游戏响应列表 + * + * @return {@link List }<{@link GameResponse }> + */ + List selectGameResponseList(); + + + /** + * 选择游戏唯一列表 + * + * @param gameUniqueDTO 游戏独有dto + * @return {@link List }<{@link Game }> + */ + List selectGameUniqueList(GameUniqueDTO gameUniqueDTO); +} + diff --git a/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyBizMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyBizMapper.java new file mode 100644 index 0000000..efc89c4 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyBizMapper.java @@ -0,0 +1,13 @@ +package com.ff.game.mapper; + +import com.ff.game.dto.GameExchangeMoneyDTO; + +import java.util.List; + +/** + * @author cengy + */ +public interface GameExchangeMoneyBizMapper { + + List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO); +} diff --git a/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsBiz.java b/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsBiz.java new file mode 100644 index 0000000..ec99ce1 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsBiz.java @@ -0,0 +1,23 @@ +package com.ff.game.service; + +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.dto.GameBettingDetailsDTO; + +import java.util.List; + +/** + * 会员投注细目Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface IGameBettingDetailsBiz { + /** + * 查询会员投注细目列表 + * + * @param gameBettingDetailsDTO 会员投注细目 + * @return 会员投注细目集合 + */ + List selectGameBettingDetailsList(GameBettingDetailsDTO gameBettingDetailsDTO); + +} diff --git a/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsService.java b/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsService.java index 3ef3fc3..a663135 100644 --- a/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsService.java +++ b/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsService.java @@ -1,11 +1,9 @@ package com.ff.game.service; -import java.util.List; - -import com.ff.game.domain.Game; import com.ff.game.domain.GameBettingDetails; import com.ff.game.dto.GameBettingDetailsDTO; -import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 会员投注细目Service接口 diff --git a/ff-game/src/main/java/com/ff/game/service/IGameBiz.java b/ff-game/src/main/java/com/ff/game/service/IGameBiz.java new file mode 100644 index 0000000..caa23b4 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/IGameBiz.java @@ -0,0 +1,41 @@ +package com.ff.game.service; + +import com.ff.api.response.GameResponse; +import com.ff.game.api.request.GameUniqueDTO; +import com.ff.game.domain.Game; +import com.ff.game.dto.GameDTO; + +import java.util.List; + +/** + * 平台子游戏管理Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface IGameBiz { + + /** + * 选择游戏数据列表 + * + * @param gameDTO 游戏dto + * @return {@link List }<{@link Game }> + */ + List selectGameDTOList(GameDTO gameDTO); + + /** + * 选择游戏响应列表 + * + * @return {@link List }<{@link GameResponse }> + */ + List selectGameResponseList(); + + + /** + * 选择游戏唯一列表 + * + * @param gameUniqueDTO 游戏独有dto + * @return {@link List }<{@link Game }> + */ + List selectGameUniqueList(GameUniqueDTO gameUniqueDTO); +} diff --git a/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyBiz.java b/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyBiz.java new file mode 100644 index 0000000..464c44c --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyBiz.java @@ -0,0 +1,31 @@ +package com.ff.game.service; + +import com.ff.game.dto.GameExchangeMoneyDTO; + +import java.util.List; + +/** + * 会员金额转移记录Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface IGameExchangeMoneyBiz { + + /** + * 选择游戏兑换货币列表 + * + * @param gameExchangeMoneyDTO 游戏兑换货币dto + * @return {@link List }<{@link GameExchangeMoneyDTO }> + */ + List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO); + + /** + * 获取交易id + * + * @param prefix 前缀 + * @param length 长 + * @return {@link String } + */ + String getTransactionId(String prefix, int length); +} \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/game/service/IGameFreeRecordService.java b/ff-game/src/main/java/com/ff/game/service/IGameFreeRecordService.java index 3c5f3b3..5864be6 100644 --- a/ff-game/src/main/java/com/ff/game/service/IGameFreeRecordService.java +++ b/ff-game/src/main/java/com/ff/game/service/IGameFreeRecordService.java @@ -1,8 +1,9 @@ package com.ff.game.service; -import java.util.List; import com.ff.game.domain.GameFreeRecord; +import java.util.List; + /** * 免费赠送游戏记录Service接口 * diff --git a/ff-game/src/main/java/com/ff/game/service/IPlatformBiz.java b/ff-game/src/main/java/com/ff/game/service/IPlatformBiz.java new file mode 100644 index 0000000..f26f9c9 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/IPlatformBiz.java @@ -0,0 +1,13 @@ +package com.ff.game.service; + +import com.ff.game.domain.Platform; + +/** + * @author cengy + */ +public interface IPlatformBiz { + + void loadToCache(); + + Platform get(String platformCode); +} diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsBizImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsBizImpl.java new file mode 100644 index 0000000..84b8012 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsBizImpl.java @@ -0,0 +1,34 @@ +package com.ff.game.service.impl; + +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.dto.GameBettingDetailsDTO; +import com.ff.game.mapper.GameBettingDetailsBizMapper; +import com.ff.game.service.IGameBettingDetailsBiz; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 会员投注细目Service业务层处理 + * + * @author shi + * @date 2025-02-10 + */ +@Service +public class GameBettingDetailsBizImpl implements IGameBettingDetailsBiz { + + @Autowired + private GameBettingDetailsBizMapper gameBettingDetailsBizMapper; + + /** + * 查询会员投注细目列表 + * + * @param gameBettingDetailsDTO 会员投注细目 + * @return 会员投注细目 + */ + @Override + public List selectGameBettingDetailsList(GameBettingDetailsDTO gameBettingDetailsDTO) { + return gameBettingDetailsBizMapper.selectGameBettingDetailsList(gameBettingDetailsDTO); + } +} diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameBizImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameBizImpl.java new file mode 100644 index 0000000..4816e56 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/impl/GameBizImpl.java @@ -0,0 +1,61 @@ +package com.ff.game.service.impl; + +import com.ff.api.response.GameResponse; +import com.ff.game.api.request.GameUniqueDTO; +import com.ff.game.domain.Game; +import com.ff.game.dto.GameDTO; +import com.ff.game.mapper.GameBizMapper; +import com.ff.game.service.IGameBiz; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 平台子游戏管理Service业务层处理 + * + * @author shi + * @date 2025-02-10 + */ +@Service +@Slf4j +public class GameBizImpl implements IGameBiz { + + @Autowired + private GameBizMapper gameBizMapper; + + /** + * 选择游戏数据列表 + * + * @param gameDTO 游戏dto + * @return {@link List }<{@link Game }> + */ + @Override + public List selectGameDTOList(GameDTO gameDTO) { + return gameBizMapper.selectGameDTOList(gameDTO); + } + + /** + * 选择游戏响应列表 + * + * @return {@link List }<{@link GameResponse }> + */ + @Override + public List selectGameResponseList() { + return gameBizMapper.selectGameResponseList(); + } + + + /** + * 选择游戏唯一列表 + * + * @param gameUniqueDTO 游戏独有dto + * @return {@link List }<{@link Game }> + */ + @Override + public List selectGameUniqueList(GameUniqueDTO gameUniqueDTO) { + return gameBizMapper.selectGameUniqueList(gameUniqueDTO); + } + +} diff --git a/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyBizImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyBizImpl.java new file mode 100644 index 0000000..2fbf1d3 --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyBizImpl.java @@ -0,0 +1,61 @@ +package com.ff.game.service.impl; + +import com.ff.base.utils.StringUtils; +import com.ff.game.domain.GameExchangeMoney; +import com.ff.game.dto.GameExchangeMoneyDTO; +import com.ff.game.mapper.GameExchangeMoneyBizMapper; +import com.ff.game.mapper.GameExchangeMoneyMapper; +import com.ff.game.service.IGameExchangeMoneyBiz; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * 会员金额转移记录Service业务层处理 + * + * @author shi + * @date 2025-02-10 + */ +@Service +public class GameExchangeMoneyBizImpl implements IGameExchangeMoneyBiz { + @Autowired + private GameExchangeMoneyBizMapper gameExchangeMoneyBizMapper; + @Autowired + private GameExchangeMoneyMapper gameExchangeMoneyMapper; + + + @Override + public List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO) { + return gameExchangeMoneyBizMapper.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); + } + + + /** + * 获取交易id + * + * @param prefix 前缀 + * @param length 长 + * @return {@link String } + */ + @Override + public synchronized String getTransactionId(String prefix, int length) { + String transactionId = StringUtils.generateOrderId(prefix, length); + List gameExchangeMonies = gameExchangeMoneyMapper.selectGameExchangeMoneyList( + GameExchangeMoney.builder() + .transactionId(transactionId) + .build() + ); + while (!CollectionUtils.isEmpty(gameExchangeMonies)) { + transactionId = StringUtils.generateOrderId(prefix, length); + gameExchangeMonies = gameExchangeMoneyMapper.selectGameExchangeMoneyList( + GameExchangeMoney.builder() + .transactionId(transactionId) + .build() + ); + } + + return transactionId; + } +} \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/game/service/impl/PlatformServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/PlatformBizImpl.java similarity index 59% rename from ff-game/src/main/java/com/ff/game/service/impl/PlatformServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/PlatformBizImpl.java index 6dd8f6b..c5b825a 100644 --- a/ff-game/src/main/java/com/ff/game/service/impl/PlatformServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/service/impl/PlatformBizImpl.java @@ -5,7 +5,7 @@ import com.ff.base.core.redis.RedisCache; import com.ff.base.datasource.DynamicDataSourceContextHolder; import com.ff.game.domain.Platform; import com.ff.game.mapper.PlatformMapper; -import com.ff.game.service.IPlatformService; +import com.ff.game.service.IPlatformBiz; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,43 +17,13 @@ import java.util.Map; * @author cengy */ @Service -public class PlatformServiceImpl implements IPlatformService { +public class PlatformBizImpl implements IPlatformBiz { @Autowired PlatformMapper platformMapper; @Autowired RedisCache redisCache; - @Override - public List selectList(Platform platform) { - return platformMapper.selectList(platform); - } - - @Override - public Platform selectByPlatformCode(String platformCode) { - return platformMapper.selectByPlatformCode(platformCode); - } - - @Override - public int updatePlatform(Platform platform) { - return platformMapper.updatePlatform(platform); - } - - @Override - public int insertPlatform(Platform platform) { - return platformMapper.insertPlatform(platform); - } - - @Override - public int deleteById(Long id) { - return platformMapper.deleteById(id); - } - - @Override - public int deleteByIds(String ids) { - return platformMapper.deleteByIds(ids); - } - @Override public void loadToCache() { Map resolvedDataSources = DynamicDataSourceContextHolder.getAllDataSource(); @@ -61,7 +31,7 @@ public class PlatformServiceImpl implements IPlatformService { Object key = entry.getKey(); // 设置数据源类型 DynamicDataSourceContextHolder.setDataSourceType(key.toString()); - List list = selectList(new Platform()); + List list = platformMapper.selectList(new Platform()); for (Platform pp : list) { redisCache.setCacheObject(getCacheKey(pp.getPlatformCode()), pp); } diff --git a/ff-game/src/main/java/com/ff/member/service/IMemberBiz.java b/ff-game/src/main/java/com/ff/member/service/IMemberBiz.java new file mode 100644 index 0000000..05380de --- /dev/null +++ b/ff-game/src/main/java/com/ff/member/service/IMemberBiz.java @@ -0,0 +1,21 @@ +package com.ff.member.service; + +/** + * 会员Service接口 + * + * @author shi + * @date 2025-02-10 + */ +public interface IMemberBiz { + + + /** + * 生成会员游戏账号 + * + * @param platformCode 平台代码 + * @param tenantSn 租户sn + * @return {@link String } + */ + String getMemberGameAccount(String platformCode, String tenantSn); + +} \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/member/service/impl/MemberBizImpl.java b/ff-game/src/main/java/com/ff/member/service/impl/MemberBizImpl.java new file mode 100644 index 0000000..89004a8 --- /dev/null +++ b/ff-game/src/main/java/com/ff/member/service/impl/MemberBizImpl.java @@ -0,0 +1,51 @@ +package com.ff.member.service.impl; + +import com.ff.base.enums.GamePlatforms; +import com.ff.base.utils.RandomGeneratorUtils; +import com.ff.member.mapper.MemberMapper; +import com.ff.member.service.IMemberBiz; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +/** + * 会员Service业务层处理 + * + * @author shi + * @date 2025-02-10 + */ +@Service +public class MemberBizImpl implements IMemberBiz { + + @Autowired + private MemberMapper memberMapper; + + /** + * 获取会员游戏账号 + * + * @return {@link String } + */ + @Override + public synchronized String getMemberGameAccount(String platformCode, String tenantSn) { + String gameAccount = null; + if (GamePlatforms.DG.getInfo().equals(platformCode) || GamePlatforms.KM.getInfo().equals(platformCode)) { + tenantSn = tenantSn.toUpperCase(); + do { + gameAccount = RandomGeneratorUtils.generateRandomAccountUpper() + tenantSn; + } while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))); + } else if (GamePlatforms.PG.getInfo().equals(platformCode) || GamePlatforms.PGX.getInfo().equals(platformCode) || GamePlatforms.PGT.getInfo().equals(platformCode)) { + tenantSn = tenantSn.toLowerCase(); + do { + gameAccount = RandomGeneratorUtils.generateRandomAccountLower() + tenantSn; + } while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))); + } else { + do { + gameAccount = RandomGeneratorUtils.generateRandomAccount() + tenantSn; + } while (!ObjectUtils.isEmpty(memberMapper.selectMemberByGameAccount(gameAccount))); + } + + + return gameAccount; + } + +} diff --git a/ff-game/src/main/java/com/ff/quartz/config/ScheduleConfig.java b/ff-game/src/main/java/com/ff/quartz/config/ScheduleConfig.java deleted file mode 100644 index c5b6fe3..0000000 --- a/ff-game/src/main/java/com/ff/quartz/config/ScheduleConfig.java +++ /dev/null @@ -1,57 +0,0 @@ -//package com.ff.quartz.config; -// -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import org.springframework.scheduling.quartz.SchedulerFactoryBean; -//import javax.sql.DataSource; -//import java.util.Properties; -// -///** -// * 定时任务配置(单机部署建议删除此类和qrtz数据库表,默认走内存会最高效) -// * -// * @author ff -// */ -//@Configuration -//public class ScheduleConfig -//{ -// @Bean -// public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) -// { -// SchedulerFactoryBean factory = new SchedulerFactoryBean(); -// factory.setDataSource(dataSource); -// -// // quartz参数 -// Properties prop = new Properties(); -// prop.put("org.quartz.scheduler.instanceName", "ffScheduler"); -// prop.put("org.quartz.scheduler.instanceId", "AUTO"); -// // 线程池配置 -// prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); -// prop.put("org.quartz.threadPool.threadCount", "20"); -// prop.put("org.quartz.threadPool.threadPriority", "5"); -// // JobStore配置 -// prop.put("org.quartz.jobStore.class", "org.springframework.scheduling.quartz.LocalDataSourceJobStore"); -// // 集群配置 -// prop.put("org.quartz.jobStore.isClustered", "true"); -// prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); -// prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "10"); -// prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); -// -// // sqlserver 启用 -// // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); -// prop.put("org.quartz.jobStore.misfireThreshold", "12000"); -// prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); -// factory.setQuartzProperties(prop); -// -// factory.setSchedulerName("ffScheduler"); -// // 延时启动 -// factory.setStartupDelay(1); -// factory.setApplicationContextSchedulerContextKey("applicationContextKey"); -// // 可选,QuartzScheduler -// // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 -// factory.setOverwriteExistingJobs(true); -// // 设置自动启动,默认为true -// factory.setAutoStartup(true); -// -// return factory; -// } -//} diff --git a/ff-game/src/main/java/com/ff/quartz/controller/SysJobController.java b/ff-game/src/main/java/com/ff/quartz/controller/SysJobController.java deleted file mode 100644 index fe850b4..0000000 --- a/ff-game/src/main/java/com/ff/quartz/controller/SysJobController.java +++ /dev/null @@ -1,179 +0,0 @@ -package com.ff.quartz.controller; - -import com.ff.base.annotation.Log; -import com.ff.base.constant.Constants; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.core.page.TableDataInfo; -import com.ff.base.enums.BusinessType; -import com.ff.base.exception.job.TaskException; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.poi.ExcelUtil; -import com.ff.quartz.domain.SysJob; -import com.ff.quartz.service.ISysJobService; -import com.ff.quartz.util.CronUtils; -import com.ff.quartz.util.ScheduleUtils; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.util.List; - -/** - * 调度任务信息操作处理 - * - * @author ff - */ -@RestController -@RequestMapping("/monitor/job") -public class SysJobController extends BaseController -{ - @Autowired - private ISysJobService jobService; - - /** - * 查询定时任务列表 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:list')") - @GetMapping("/list") - public TableDataInfo list(SysJob sysJob) - { - startPage(); - List list = jobService.selectJobList(sysJob); - return getDataTable(list); - } - - /** - * 导出定时任务列表 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:export')") - @Log(title = "定时任务", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysJob sysJob) - { - List list = jobService.selectJobList(sysJob); - ExcelUtil util = new ExcelUtil(SysJob.class); - util.exportExcel(response, list, "定时任务"); - } - - /** - * 获取定时任务详细信息 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:query')") - @GetMapping(value = "/{jobId}") - public AjaxResult getInfo(@PathVariable("jobId") Long jobId) - { - return success(jobService.selectJobById(jobId)); - } - - /** - * 新增定时任务 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:add')") - @Log(title = "定时任务", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException - { - if (!CronUtils.isValid(job.getCronExpression())) - { - return error("新增任务'" + job.getJobName() + "'失败,Cron表达式不正确"); - } - else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) - { - return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'rmi'调用"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS })) - { - return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'ldap(s)'调用"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.HTTP, Constants.HTTPS })) - { - return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)'调用"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) - { - return error("新增任务'" + job.getJobName() + "'失败,目标字符串存在违规"); - } - else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) - { - return error("新增任务'" + job.getJobName() + "'失败,目标字符串不在白名单内"); - } - job.setCreateBy(getUsername()); - return toAjax(jobService.insertJob(job)); - } - - /** - * 修改定时任务 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:edit')") - @Log(title = "定时任务", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException - { - if (!CronUtils.isValid(job.getCronExpression())) - { - return error("修改任务'" + job.getJobName() + "'失败,Cron表达式不正确"); - } - else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) - { - return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'rmi'调用"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS })) - { - return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'ldap(s)'调用"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.HTTP, Constants.HTTPS })) - { - return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)'调用"); - } - else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) - { - return error("修改任务'" + job.getJobName() + "'失败,目标字符串存在违规"); - } - else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) - { - return error("修改任务'" + job.getJobName() + "'失败,目标字符串不在白名单内"); - } - job.setUpdateBy(getUsername()); - return toAjax(jobService.updateJob(job)); - } - - /** - * 定时任务状态修改 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") - @Log(title = "定时任务", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException - { - SysJob newJob = jobService.selectJobById(job.getJobId()); - newJob.setStatus(job.getStatus()); - return toAjax(jobService.changeStatus(newJob)); - } - - /** - * 定时任务立即执行一次 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") - @Log(title = "定时任务", businessType = BusinessType.UPDATE) - @PutMapping("/run") - public AjaxResult run(@RequestBody SysJob job) throws SchedulerException - { - boolean result = jobService.run(job); - return result ? success() : error("任务不存在或已过期!"); - } - - /** - * 删除定时任务 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:remove')") - @Log(title = "定时任务", businessType = BusinessType.DELETE) - @DeleteMapping("/{jobIds}") - public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException, TaskException - { - jobService.deleteJobByIds(jobIds); - return success(); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/controller/SysJobLogController.java b/ff-game/src/main/java/com/ff/quartz/controller/SysJobLogController.java deleted file mode 100644 index 2ea8a1e..0000000 --- a/ff-game/src/main/java/com/ff/quartz/controller/SysJobLogController.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.ff.quartz.controller; - -import com.ff.base.annotation.Log; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.core.page.TableDataInfo; -import com.ff.base.enums.BusinessType; -import com.ff.base.utils.poi.ExcelUtil; -import com.ff.quartz.domain.SysJobLog; -import com.ff.quartz.service.ISysJobLogService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.util.List; - -/** - * 调度日志操作处理 - * - * @author ff - */ -@RestController -@RequestMapping("/monitor/jobLog") -public class SysJobLogController extends BaseController -{ - @Autowired - private ISysJobLogService jobLogService; - - /** - * 查询定时任务调度日志列表 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:list')") - @GetMapping("/list") - public TableDataInfo list(SysJobLog sysJobLog) - { - startPage(); - List list = jobLogService.selectJobLogList(sysJobLog); - return getDataTable(list); - } - - /** - * 导出定时任务调度日志列表 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:export')") - @Log(title = "任务调度日志", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysJobLog sysJobLog) - { - List list = jobLogService.selectJobLogList(sysJobLog); - ExcelUtil util = new ExcelUtil(SysJobLog.class); - util.exportExcel(response, list, "调度日志"); - } - - /** - * 根据调度编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:query')") - @GetMapping(value = "/{jobLogId}") - public AjaxResult getInfo(@PathVariable Long jobLogId) - { - return success(jobLogService.selectJobLogById(jobLogId)); - } - - - /** - * 删除定时任务调度日志 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:remove')") - @Log(title = "定时任务调度日志", businessType = BusinessType.DELETE) - @DeleteMapping("/{jobLogIds}") - public AjaxResult remove(@PathVariable Long[] jobLogIds) - { - return toAjax(jobLogService.deleteJobLogByIds(jobLogIds)); - } - - /** - * 清空定时任务调度日志 - */ - @PreAuthorize("@ss.hasPermi('monitor:job:remove')") - @Log(title = "调度日志", businessType = BusinessType.CLEAN) - @DeleteMapping("/clean") - public AjaxResult clean() - { - jobLogService.cleanJobLog(); - return success(); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/domain/SysJob.java b/ff-game/src/main/java/com/ff/quartz/domain/SysJob.java deleted file mode 100644 index 5c8498c..0000000 --- a/ff-game/src/main/java/com/ff/quartz/domain/SysJob.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.ff.quartz.domain; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.annotation.Excel.ColumnType; -import com.ff.base.constant.ScheduleConstants; -import com.ff.base.core.domain.BaseEntity; -import com.ff.base.utils.StringUtils; -import com.ff.quartz.util.CronUtils; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; -import java.util.Date; - -/** - * 定时任务调度表 sys_job - * - * @author ff - */ -public class SysJob extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 任务ID */ - @Excel(name = "任务序号", cellType = ColumnType.NUMERIC) - @JsonSerialize(using = ToStringSerializer.class) - private Long jobId; - - /** 任务名称 */ - @Excel(name = "任务名称") - private String jobName; - - /** 任务组名 */ - @Excel(name = "任务组名") - private String jobGroup; - - /** 调用目标字符串 */ - @Excel(name = "调用目标字符串") - private String invokeTarget; - - /** cron执行表达式 */ - @Excel(name = "执行表达式 ") - private String cronExpression; - - /** cron计划策略 */ - @Excel(name = "计划策略 ", readConverterExp = "0=默认,1=立即触发执行,2=触发一次执行,3=不触发立即执行") - private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT; - - /** 是否并发执行(0允许 1禁止) */ - @Excel(name = "并发执行", readConverterExp = "0=允许,1=禁止") - private String concurrent; - - /** 任务状态(0正常 1暂停) */ - @Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停") - private String status; - @JsonSerialize(using = ToStringSerializer.class) - public Long getJobId() - { - return jobId; - } - - public void setJobId(Long jobId) - { - this.jobId = jobId; - } - - @NotBlank(message = "任务名称不能为空") - @Size(min = 0, max = 64, message = "任务名称不能超过64个字符") - public String getJobName() - { - return jobName; - } - - public void setJobName(String jobName) - { - this.jobName = jobName; - } - - public String getJobGroup() - { - return jobGroup; - } - - public void setJobGroup(String jobGroup) - { - this.jobGroup = jobGroup; - } - - @NotBlank(message = "调用目标字符串不能为空") - @Size(min = 0, max = 500, message = "调用目标字符串长度不能超过500个字符") - public String getInvokeTarget() - { - return invokeTarget; - } - - public void setInvokeTarget(String invokeTarget) - { - this.invokeTarget = invokeTarget; - } - - @NotBlank(message = "Cron执行表达式不能为空") - @Size(min = 0, max = 255, message = "Cron执行表达式不能超过255个字符") - public String getCronExpression() - { - return cronExpression; - } - - public void setCronExpression(String cronExpression) - { - this.cronExpression = cronExpression; - } - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - public Date getNextValidTime() - { - if (StringUtils.isNotEmpty(cronExpression)) - { - return CronUtils.getNextExecution(cronExpression); - } - return null; - } - - public String getMisfirePolicy() - { - return misfirePolicy; - } - - public void setMisfirePolicy(String misfirePolicy) - { - this.misfirePolicy = misfirePolicy; - } - - public String getConcurrent() - { - return concurrent; - } - - public void setConcurrent(String concurrent) - { - this.concurrent = concurrent; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("jobId", getJobId()) - .append("jobName", getJobName()) - .append("jobGroup", getJobGroup()) - .append("cronExpression", getCronExpression()) - .append("nextValidTime", getNextValidTime()) - .append("misfirePolicy", getMisfirePolicy()) - .append("concurrent", getConcurrent()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/domain/SysJobLog.java b/ff-game/src/main/java/com/ff/quartz/domain/SysJobLog.java deleted file mode 100644 index 862e809..0000000 --- a/ff-game/src/main/java/com/ff/quartz/domain/SysJobLog.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.ff.quartz.domain; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.core.domain.BaseEntity; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -import java.util.Date; - -/** - * 定时任务调度日志表 sys_job_log - * - * @author ff - */ -public class SysJobLog extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** ID */ - @Excel(name = "日志序号") - @JsonSerialize(using = ToStringSerializer.class) - private Long jobLogId; - - /** 任务名称 */ - @Excel(name = "任务名称") - private String jobName; - - /** 任务组名 */ - @Excel(name = "任务组名") - private String jobGroup; - - /** 调用目标字符串 */ - @Excel(name = "调用目标字符串") - private String invokeTarget; - - /** 日志信息 */ - @Excel(name = "日志信息") - private String jobMessage; - - /** 执行状态(0正常 1失败) */ - @Excel(name = "执行状态", readConverterExp = "0=正常,1=失败") - private String status; - - /** 异常信息 */ - @Excel(name = "异常信息") - private String exceptionInfo; - - /** 开始时间 */ - private Date startTime; - - /** 停止时间 */ - private Date stopTime; - @JsonSerialize(using = ToStringSerializer.class) - public Long getJobLogId() - { - return jobLogId; - } - - public void setJobLogId(Long jobLogId) - { - this.jobLogId = jobLogId; - } - - public String getJobName() - { - return jobName; - } - - public void setJobName(String jobName) - { - this.jobName = jobName; - } - - public String getJobGroup() - { - return jobGroup; - } - - public void setJobGroup(String jobGroup) - { - this.jobGroup = jobGroup; - } - - public String getInvokeTarget() - { - return invokeTarget; - } - - public void setInvokeTarget(String invokeTarget) - { - this.invokeTarget = invokeTarget; - } - - public String getJobMessage() - { - return jobMessage; - } - - public void setJobMessage(String jobMessage) - { - this.jobMessage = jobMessage; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getExceptionInfo() - { - return exceptionInfo; - } - - public void setExceptionInfo(String exceptionInfo) - { - this.exceptionInfo = exceptionInfo; - } - - public Date getStartTime() - { - return startTime; - } - - public void setStartTime(Date startTime) - { - this.startTime = startTime; - } - - public Date getStopTime() - { - return stopTime; - } - - public void setStopTime(Date stopTime) - { - this.stopTime = stopTime; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("jobLogId", getJobLogId()) - .append("jobName", getJobName()) - .append("jobGroup", getJobGroup()) - .append("jobMessage", getJobMessage()) - .append("status", getStatus()) - .append("exceptionInfo", getExceptionInfo()) - .append("startTime", getStartTime()) - .append("stopTime", getStopTime()) - .toString(); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java b/ff-game/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java deleted file mode 100644 index 86c9fb4..0000000 --- a/ff-game/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.ff.quartz.mapper; - -import com.ff.quartz.domain.SysJobLog; - -import java.util.List; - -/** - * 调度任务日志信息 数据层 - * - * @author ff - */ -public interface SysJobLogMapper -{ - /** - * 获取quartz调度器日志的计划任务 - * - * @param jobLog 调度日志信息 - * @return 调度任务日志集合 - */ - public List selectJobLogList(SysJobLog jobLog); - - /** - * 查询所有调度任务日志 - * - * @return 调度任务日志列表 - */ - public List selectJobLogAll(); - - /** - * 通过调度任务日志ID查询调度信息 - * - * @param jobLogId 调度任务日志ID - * @return 调度任务日志对象信息 - */ - public SysJobLog selectJobLogById(Long jobLogId); - - /** - * 新增任务日志 - * - * @param jobLog 调度日志信息 - * @return 结果 - */ - public int insertJobLog(SysJobLog jobLog); - - /** - * 批量删除调度日志信息 - * - * @param logIds 需要删除的数据ID - * @return 结果 - */ - public int deleteJobLogByIds(Long[] logIds); - - /** - * 删除任务日志 - * - * @param jobId 调度日志ID - * @return 结果 - */ - public int deleteJobLogById(Long jobId); - - /** - * 清空任务日志 - */ - public void cleanJobLog(); -} diff --git a/ff-game/src/main/java/com/ff/quartz/mapper/SysJobMapper.java b/ff-game/src/main/java/com/ff/quartz/mapper/SysJobMapper.java deleted file mode 100644 index 3aac4d2..0000000 --- a/ff-game/src/main/java/com/ff/quartz/mapper/SysJobMapper.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.ff.quartz.mapper; - -import com.ff.quartz.domain.SysJob; - -import java.util.List; - -/** - * 调度任务信息 数据层 - * - * @author ff - */ -public interface SysJobMapper -{ - /** - * 查询调度任务日志集合 - * - * @param job 调度信息 - * @return 操作日志集合 - */ - public List selectJobList(SysJob job); - - /** - * 查询所有调度任务 - * - * @return 调度任务列表 - */ - public List selectJobAll(); - - /** - * 通过调度ID查询调度任务信息 - * - * @param jobId 调度ID - * @return 角色对象信息 - */ - public SysJob selectJobById(Long jobId); - - /** - * 通过调度ID删除调度任务信息 - * - * @param jobId 调度ID - * @return 结果 - */ - public int deleteJobById(Long jobId); - - /** - * 批量删除调度任务信息 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - public int deleteJobByIds(Long[] ids); - - /** - * 修改调度任务信息 - * - * @param job 调度任务信息 - * @return 结果 - */ - public int updateJob(SysJob job); - - /** - * 新增调度任务信息 - * - * @param job 调度任务信息 - * @return 结果 - */ - public int insertJob(SysJob job); -} diff --git a/ff-game/src/main/java/com/ff/quartz/service/ISysJobLogService.java b/ff-game/src/main/java/com/ff/quartz/service/ISysJobLogService.java deleted file mode 100644 index fc43da0..0000000 --- a/ff-game/src/main/java/com/ff/quartz/service/ISysJobLogService.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.ff.quartz.service; - -import com.ff.quartz.domain.SysJobLog; - -import java.util.List; - -/** - * 定时任务调度日志信息信息 服务层 - * - * @author ff - */ -public interface ISysJobLogService -{ - /** - * 获取quartz调度器日志的计划任务 - * - * @param jobLog 调度日志信息 - * @return 调度任务日志集合 - */ - public List selectJobLogList(SysJobLog jobLog); - - /** - * 通过调度任务日志ID查询调度信息 - * - * @param jobLogId 调度任务日志ID - * @return 调度任务日志对象信息 - */ - public SysJobLog selectJobLogById(Long jobLogId); - - /** - * 新增任务日志 - * - * @param jobLog 调度日志信息 - */ - public void addJobLog(SysJobLog jobLog); - - /** - * 批量删除调度日志信息 - * - * @param logIds 需要删除的日志ID - * @return 结果 - */ - public int deleteJobLogByIds(Long[] logIds); - - /** - * 删除任务日志 - * - * @param jobId 调度日志ID - * @return 结果 - */ - public int deleteJobLogById(Long jobId); - - /** - * 清空任务日志 - */ - public void cleanJobLog(); -} diff --git a/ff-game/src/main/java/com/ff/quartz/service/ISysJobService.java b/ff-game/src/main/java/com/ff/quartz/service/ISysJobService.java deleted file mode 100644 index 374d375..0000000 --- a/ff-game/src/main/java/com/ff/quartz/service/ISysJobService.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.ff.quartz.service; - -import com.ff.base.exception.job.TaskException; -import com.ff.quartz.domain.SysJob; -import org.quartz.SchedulerException; - -import java.util.List; - -/** - * 定时任务调度信息信息 服务层 - * - * @author ff - */ -public interface ISysJobService -{ - /** - * 获取quartz调度器的计划任务 - * - * @param job 调度信息 - * @return 调度任务集合 - */ - public List selectJobList(SysJob job); - - /** - * 通过调度任务ID查询调度信息 - * - * @param jobId 调度任务ID - * @return 调度任务对象信息 - */ - public SysJob selectJobById(Long jobId); - - /** - * 暂停任务 - * - * @param job 调度信息 - * @return 结果 - */ - public int pauseJob(SysJob job) throws SchedulerException; - - /** - * 恢复任务 - * - * @param job 调度信息 - * @return 结果 - */ - public int resumeJob(SysJob job) throws SchedulerException; - - /** - * 删除任务后,所对应的trigger也将被删除 - * - * @param job 调度信息 - * @return 结果 - */ - public int deleteJob(SysJob job) throws SchedulerException; - - /** - * 批量删除调度信息 - * - * @param jobIds 需要删除的任务ID - * @return 结果 - */ - public void deleteJobByIds(Long[] jobIds) throws SchedulerException; - - /** - * 任务调度状态修改 - * - * @param job 调度信息 - * @return 结果 - */ - public int changeStatus(SysJob job) throws SchedulerException; - - /** - * 立即运行任务 - * - * @param job 调度信息 - * @return 结果 - */ - public boolean run(SysJob job) throws SchedulerException; - - /** - * 新增任务 - * - * @param job 调度信息 - * @return 结果 - */ - public int insertJob(SysJob job) throws SchedulerException, TaskException; - - /** - * 更新任务 - * - * @param job 调度信息 - * @return 结果 - */ - public int updateJob(SysJob job) throws SchedulerException, TaskException; - - /** - * 校验cron表达式是否有效 - * - * @param cronExpression 表达式 - * @return 结果 - */ - public boolean checkCronExpressionIsValid(String cronExpression); -} diff --git a/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java b/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java deleted file mode 100644 index 6964375..0000000 --- a/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.ff.quartz.service.impl; - -import cn.hutool.core.util.IdUtil; -import com.ff.quartz.domain.SysJobLog; -import com.ff.quartz.mapper.SysJobLogMapper; -import com.ff.quartz.service.ISysJobLogService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 定时任务调度日志信息 服务层 - * - * @author ff - */ -@Service -public class SysJobLogServiceImpl implements ISysJobLogService -{ - @Autowired - private SysJobLogMapper jobLogMapper; - - /** - * 获取quartz调度器日志的计划任务 - * - * @param jobLog 调度日志信息 - * @return 调度任务日志集合 - */ - @Override - public List selectJobLogList(SysJobLog jobLog) - { - return jobLogMapper.selectJobLogList(jobLog); - } - - /** - * 通过调度任务日志ID查询调度信息 - * - * @param jobLogId 调度任务日志ID - * @return 调度任务日志对象信息 - */ - @Override - public SysJobLog selectJobLogById(Long jobLogId) - { - return jobLogMapper.selectJobLogById(jobLogId); - } - - /** - * 新增任务日志 - * - * @param jobLog 调度日志信息 - */ - @Override - public void addJobLog(SysJobLog jobLog) - { - jobLog.setJobLogId(IdUtil.getSnowflakeNextId()); - jobLogMapper.insertJobLog(jobLog); - } - - /** - * 批量删除调度日志信息 - * - * @param logIds 需要删除的数据ID - * @return 结果 - */ - @Override - public int deleteJobLogByIds(Long[] logIds) - { - return jobLogMapper.deleteJobLogByIds(logIds); - } - - /** - * 删除任务日志 - * - * @param jobId 调度日志ID - */ - @Override - public int deleteJobLogById(Long jobId) - { - return jobLogMapper.deleteJobLogById(jobId); - } - - /** - * 清空任务日志 - */ - @Override - public void cleanJobLog() - { - jobLogMapper.cleanJobLog(); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java b/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java deleted file mode 100644 index d03c360..0000000 --- a/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.ff.quartz.service.impl; - -import cn.hutool.core.util.IdUtil; -import com.ff.base.constant.ScheduleConstants; -import com.ff.base.exception.job.TaskException; -import com.ff.quartz.domain.SysJob; -import com.ff.quartz.mapper.SysJobMapper; -import com.ff.quartz.service.ISysJobService; -import com.ff.quartz.util.CronUtils; -import com.ff.quartz.util.ScheduleUtils; -import org.quartz.JobDataMap; -import org.quartz.JobKey; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.PostConstruct; -import java.util.List; - -/** - * 定时任务调度信息 服务层 - * - * @author ff - */ -@Service -public class SysJobServiceImpl implements ISysJobService -{ - @Autowired - private Scheduler scheduler; - - @Autowired - private SysJobMapper jobMapper; - - /** - * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据) - */ - @PostConstruct - public void init() throws SchedulerException, TaskException - { - scheduler.clear(); - List jobList = jobMapper.selectJobAll(); - for (SysJob job : jobList) - { - ScheduleUtils.createScheduleJob(scheduler, job); - } - } - - /** - * 获取quartz调度器的计划任务列表 - * - * @param job 调度信息 - * @return - */ - @Override - public List selectJobList(SysJob job) - { - return jobMapper.selectJobList(job); - } - - /** - * 通过调度任务ID查询调度信息 - * - * @param jobId 调度任务ID - * @return 调度任务对象信息 - */ - @Override - public SysJob selectJobById(Long jobId) - { - return jobMapper.selectJobById(jobId); - } - - /** - * 暂停任务 - * - * @param job 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int pauseJob(SysJob job) throws SchedulerException - { - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); - int rows = jobMapper.updateJob(job); - if (rows > 0) - { - scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - return rows; - } - - /** - * 恢复任务 - * - * @param job 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int resumeJob(SysJob job) throws SchedulerException - { - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - job.setStatus(ScheduleConstants.Status.NORMAL.getValue()); - int rows = jobMapper.updateJob(job); - if (rows > 0) - { - scheduler.resumeJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - return rows; - } - - /** - * 删除任务后,所对应的trigger也将被删除 - * - * @param job 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteJob(SysJob job) throws SchedulerException - { - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - int rows = jobMapper.deleteJobById(jobId); - if (rows > 0) - { - scheduler.deleteJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - return rows; - } - - /** - * 批量删除调度信息 - * - * @param jobIds 需要删除的任务ID - * @return 结果 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteJobByIds(Long[] jobIds) throws SchedulerException - { - for (Long jobId : jobIds) - { - SysJob job = jobMapper.selectJobById(jobId); - deleteJob(job); - } - } - - /** - * 任务调度状态修改 - * - * @param job 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int changeStatus(SysJob job) throws SchedulerException - { - int rows = 0; - String status = job.getStatus(); - if (ScheduleConstants.Status.NORMAL.getValue().equals(status)) - { - rows = resumeJob(job); - } - else if (ScheduleConstants.Status.PAUSE.getValue().equals(status)) - { - rows = pauseJob(job); - } - return rows; - } - - /** - * 立即运行任务 - * - * @param job 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public boolean run(SysJob job) throws SchedulerException - { - boolean result = false; - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - SysJob properties = selectJobById(job.getJobId()); - // 参数 - JobDataMap dataMap = new JobDataMap(); - dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties); - JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); - if (scheduler.checkExists(jobKey)) - { - result = true; - scheduler.triggerJob(jobKey, dataMap); - } - return result; - } - - /** - * 新增任务 - * - * @param job 调度信息 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int insertJob(SysJob job) throws SchedulerException, TaskException - { - job.setJobId(IdUtil.getSnowflakeNextId()); - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); - int rows = jobMapper.insertJob(job); - if (rows > 0) - { - ScheduleUtils.createScheduleJob(scheduler, job); - } - return rows; - } - - /** - * 更新任务的时间表达式 - * - * @param job 调度信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int updateJob(SysJob job) throws SchedulerException, TaskException - { - SysJob properties = selectJobById(job.getJobId()); - int rows = jobMapper.updateJob(job); - if (rows > 0) - { - updateSchedulerJob(job, properties.getJobGroup()); - } - return rows; - } - - /** - * 更新任务 - * - * @param job 任务对象 - * @param jobGroup 任务组名 - */ - public void updateSchedulerJob(SysJob job, String jobGroup) throws SchedulerException, TaskException - { - Long jobId = job.getJobId(); - // 判断是否存在 - JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); - if (scheduler.checkExists(jobKey)) - { - // 防止创建时存在数据问题 先移除,然后在执行创建操作 - scheduler.deleteJob(jobKey); - } - ScheduleUtils.createScheduleJob(scheduler, job); - } - - /** - * 校验cron表达式是否有效 - * - * @param cronExpression 表达式 - * @return 结果 - */ - @Override - public boolean checkCronExpressionIsValid(String cronExpression) - { - return CronUtils.isValid(cronExpression); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/task/GameTask.java b/ff-game/src/main/java/com/ff/quartz/task/GameTask.java deleted file mode 100644 index 0a7ec13..0000000 --- a/ff-game/src/main/java/com/ff/quartz/task/GameTask.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.ff.quartz.task; - -import com.ff.api.response.GameExchangeBalanceResponse; -import com.ff.base.constant.Constants; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.*; -import com.ff.base.manager.AsyncManager; -import com.ff.base.utils.DateUtils; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.bean.BeanUtils; -import com.ff.game.api.IGamesService; -import com.ff.game.api.exchange.StepProcessorFactory; -import com.ff.game.api.exchange.dto.GameExchangeDTO; -import com.ff.game.api.ng.client.NGClient; -import com.ff.game.api.request.BetRecordByTimeDTO; -import com.ff.game.api.request.ExchangeTransferStatusRequestDTO; -import com.ff.game.api.request.GamesBaseRequestDTO; -import com.ff.game.api.request.GetFreeSpinDashflowRequestDTO; -import com.ff.game.domain.GameExchangeMoney; -import com.ff.game.domain.KeyInfo; -import com.ff.game.domain.Platform; -import com.ff.game.service.IGameExchangeMoneyService; -import com.ff.game.service.IPlatformService; -import com.ff.member.domain.Member; -import com.ff.member.service.IMemberService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - - -/** - * 游戏任务 - * - * @author shi - * @date 2024/10/22 - */ -@Slf4j -@Component("gameTask") -public class GameTask { - - @Autowired - private Map gamesService; - - @Resource - private NGClient ngClient; - - @Resource - private IGameExchangeMoneyService gameExchangeMoneyService; - - @Resource - private IMemberService memberService; - - @Resource - private IPlatformService platformService; - - - @Resource - private StepProcessorFactory stepProcessorFactory; - /** - * 同步游戏列表 - */ - public void syncGameList() { - for (GamePlatforms gamePlatform : GamePlatforms.values()) { - String platformCode = gamePlatform.getCode(); - try { - syncGameList(platformCode); - } catch (Exception e) { - log.error("同步游戏列表失败platformCode:{}", platformCode, e); - } - } - } - - public void syncGameList(String platformCode) { - - Platform platform = platformService.get(platformCode); - if (null == platform) { - return; - } - List keyData = platform.getKeyInfo(); - for (KeyInfo keyInfo : keyData) { - gamesService.get(platformCode + Constants.SERVICE) - .getGameList(GamesBaseRequestDTO.builder() - .agentId(keyInfo.getCode()) - .agentKey(keyInfo.getKey()) - .keyInfo(keyInfo) - .vendor(platform) - .build()); - break; - } - } - - /** - * 同步实时投注记录 - * - * @param platformCode - * @param backTimeMin - */ - public void syncRealtimeBetRecord(String platformCode, Integer backTimeMin) { - this.syncGameList(platformCode); - //捞取指定分钟前的数据 - Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTimeMin); - Long endTime = DateUtils.getNowDate(); - - Platform platform = platformService.get(platformCode); - if (null == platform) { - return; - } - List keyData = platform.getKeyInfo(); - - for (KeyInfo keyInfo : keyData) { - try { - BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO(); - betRecordByTimeDTO.setStartTime(startTime); - betRecordByTimeDTO.setEndTime(endTime); - betRecordByTimeDTO.setPage(1); - betRecordByTimeDTO.setPageLimit(1000); - betRecordByTimeDTO.setAgentId(keyInfo.getCode()); - betRecordByTimeDTO.setAgentKey(keyInfo.getKey()); - betRecordByTimeDTO.setKeyInfo(keyInfo); - betRecordByTimeDTO.setVendor(platform); - - betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency()); - betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency())); - - gamesService.get(platformCode + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO); - } catch (Exception e) { - log.error("同步平台投注记录失败platformCode:{}", platformCode, e); - } - if (platform.isMultiAgent()) { - break; - } - } - } - - /** - * 同步历史投注记录 - * - * @param platformCode - * @param backTimeMin - */ - public void syncHistoryBetRecord(String platformCode, Integer backTimeMin) { - this.syncGameList(platformCode); - //捞取指定分钟前的数据 - Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTimeMin); - Long endTime = DateUtils.getNowDate(); - - Platform platform = platformService.get(platformCode); - if (null == platform) { - return; - } - List keyData = platform.getKeyInfo(); - - for (KeyInfo keyInfo : keyData) { - try { - BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO(); - betRecordByTimeDTO.setStartTime(startTime); - betRecordByTimeDTO.setEndTime(endTime); - betRecordByTimeDTO.setPage(1); - betRecordByTimeDTO.setPageLimit(1000); - betRecordByTimeDTO.setAgentId(keyInfo.getCode()); - betRecordByTimeDTO.setAgentKey(keyInfo.getKey()); - betRecordByTimeDTO.setKeyInfo(keyInfo); - betRecordByTimeDTO.setVendor(platform); - - betRecordByTimeDTO.setSystemCurrency(keyInfo.getCurrency()); - betRecordByTimeDTO.setCurrency(platform.getCurrencyInfo().get(keyInfo.getCurrency())); - - gamesService.get(platformCode + Constants.SERVICE).getBetRecordByHistoryTime(betRecordByTimeDTO); - } catch (Exception e) { - log.error("同步平台投注记录失败platformCode:{}", platformCode, e); - } - if (platform.isMultiAgent()) { - break; - } - } - } - - /** - * 同步免费游玩记录 - */ - public void syncFreeBetRecord(String platformCode, Integer backTime) { - // 捞取指定分钟前的数据 - Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime); - - Platform platform = platformService.get(platformCode); - if (null == platform) { - return; - } - List keyData = platform.getKeyInfo(); - - for (KeyInfo keyInfo : keyData) { - try { - GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO = new GetFreeSpinDashflowRequestDTO(); - getFreeSpinDashflowRequestDTO.setStartTime(startTime); - getFreeSpinDashflowRequestDTO.setAgentId(keyInfo.getCode()); - getFreeSpinDashflowRequestDTO.setAgentKey(keyInfo.getKey()); - getFreeSpinDashflowRequestDTO.setVendor(platform); - getFreeSpinDashflowRequestDTO.setKeyInfo(keyInfo); - gamesService.get(platformCode + Constants.SERVICE).getFreeSpinDashflow(getFreeSpinDashflowRequestDTO); - - } catch (Exception e) { - log.error("免费游戏投注记录失败platformCode:{}", platformCode, e); - } - if (platform.isMultiAgent()) { - break; - } - } - } - - public void updateGameExchangeMoney() { - GameExchangeMoney gameExchangeMoney = GameExchangeMoney.builder().status(StatusType.IN_PROGRESS.getValue()).build(); - Map params=new HashMap<>(); - params.put("endTime",DateUtils.addOrSubtractMinutes( DateUtils.getNowDate(),-5)); - gameExchangeMoney.setParams(params); - List gameExchangeMoneyList = gameExchangeMoneyService.selectGameExchangeMoneyList(gameExchangeMoney); - for (GameExchangeMoney exchangeMoney : gameExchangeMoneyList) { - try { - Member member = memberService.selectMemberById(exchangeMoney.getMemberId()); - - Integer step = exchangeMoney.getStep(); - Integer stepStatus = exchangeMoney.getStepStatus(); - GameExchangeDTO gameExchangeDTO=new GameExchangeDTO(); - BeanUtils.copyProperties(exchangeMoney,gameExchangeDTO); - gameExchangeDTO.setTriggerType(TriggerType.TIMER.getCode()); - gameExchangeDTO.setGameAccount(member.getGameAccount()); - gameExchangeDTO.setMemberAccount(member.getMemberAccount()); - AsyncManager.me().executeOrdered( - exchangeMoney.getOrderId(), - () -> { - try { - GameExchangeStep gameExchangeStep = GameExchangeStep.getByCode(step); - if (stepStatus == GameExchangeStepStatus.SUCCESS.getCode()){ - gameExchangeStep = stepProcessorFactory.getStepProcessor(GameExchangeStep.getByCode(step)).nextStepProcessor(); - } - - stepProcessorFactory.getStepProcessor(gameExchangeStep).process(gameExchangeDTO); - } catch (Exception e) { - log.error("GameTask [updateGameExchangeMoney] 余额转移失败 gameExchangeMoneyId {}", gameExchangeDTO.getId(),e); - stepProcessorFactory.getStepProcessor(GameExchangeStep.getByCode(exchangeMoney.getStep())).rollBack(gameExchangeDTO); - } - - } - ); - } catch (Exception e) { - log.error("查询 更新交易记录失败,错误信息 {}", e); - } - } - - } - -} - - - - - - diff --git a/ff-game/src/main/java/com/ff/quartz/task/RyTask.java b/ff-game/src/main/java/com/ff/quartz/task/RyTask.java deleted file mode 100644 index 2253a81..0000000 --- a/ff-game/src/main/java/com/ff/quartz/task/RyTask.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.ff.quartz.task; - -import com.ff.base.datasource.DynamicDataSourceContextHolder; -import com.ff.base.utils.StringUtils; -import org.springframework.stereotype.Component; - -import javax.sql.DataSource; -import java.util.Map; - -/** - * 定时任务调度测试 - * - * @author ff - */ -@Component("ryTask") -public class RyTask { - public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { - System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); - } - - public void ryParams(String params) { - System.out.println("执行有参方法:" + params); - } - - public void ryNoParams() { - Map resolvedDataSources = DynamicDataSourceContextHolder.getAllDataSource(); - for (Map.Entry entry : resolvedDataSources.entrySet()) { - Object key = entry.getKey(); - // 设置数据源类型 - DynamicDataSourceContextHolder.setDataSourceType(key.toString()); - System.out.println("执行无参方法"); - } - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/task/TenantQuotaTask.java b/ff-game/src/main/java/com/ff/quartz/task/TenantQuotaTask.java deleted file mode 100644 index a19d19e..0000000 --- a/ff-game/src/main/java/com/ff/quartz/task/TenantQuotaTask.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.ff.quartz.task; - - -import cn.hutool.core.util.NumberUtil; -import com.ff.base.constant.Constants; -import com.ff.base.enums.OperationType; -import com.ff.base.enums.QuotaType; -import com.ff.base.system.domain.TenantPlatform; -import com.ff.base.system.domain.TenantSecretKey; -import com.ff.base.system.service.ITenantPlatformService; -import com.ff.base.utils.DateUtils; -import com.ff.common.domain.TenantGameQuotaFlow; -import com.ff.common.domain.TenantQuotaExchange; -import com.ff.common.dto.BalanceRealChangesDTO; -import com.ff.common.service.ITenantGameQuotaFlowService; -import com.ff.common.service.ITenantGameQuotaService; -import com.ff.common.service.ITenantQuotaExchangeService; -import com.ff.base.system.service.ITenantSecretKeyService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -/** - * 租户配额任务 - * - * @author shi - * @date 2025/02/22 - */ -@Slf4j -@Component("tenantQuotaTask") -public class TenantQuotaTask { - - @Resource - private ITenantGameQuotaService tenantGameQuotaService; - - @Resource - private ITenantGameQuotaFlowService tenantGameQuotaFlowService; - - @Resource - private ITenantSecretKeyService tenantSecretKeyService; - - @Resource - private ITenantQuotaExchangeService tenantQuotaExchangeService; - - @Resource - private ITenantPlatformService tenantPlatformService; - - /** - * 更新租户实际配额 - */ - public void updateTenantRealQuota() { - Long yesterdayStart = DateUtils.getYesterdayStart(); - Long yesterdayEnd = DateUtils.getYesterdayEnd(); - TenantGameQuotaFlow gameQuotaFlow = TenantGameQuotaFlow.builder() - .quotaType(QuotaType.BALANCE.getCode()) - .operationType(OperationType.API_BALANCE.getCode()) - .build(); - Map params = gameQuotaFlow.getParams(); - params.put("beginTime", yesterdayStart); - params.put("endTime", yesterdayEnd); - List balanceByTenantKey = tenantGameQuotaFlowService.getBalanceByTenantKey(gameQuotaFlow); - for (TenantGameQuotaFlow tenantGameQuotaFlow : balanceByTenantKey) { - BigDecimal balance = tenantGameQuotaFlow.getExchangeMoney(); - Boolean isOut = Boolean.TRUE; - // 添加判断逻辑 - if (balance.compareTo(BigDecimal.ZERO) < 0) { - balance = balance.abs(); - isOut = Boolean.FALSE; - } - - TenantQuotaExchange tenantQuotaExchange = tenantQuotaExchangeService.getTenantQuotaExchange(Constants.USDT, tenantGameQuotaFlow.getCurrencyCode()); - //更新额度 - BalanceRealChangesDTO realChangesDTO = BalanceRealChangesDTO.builder() - .isOut(isOut) - .tenantKey(tenantGameQuotaFlow.getTenantKey()) - .balance(balance) - .remark(OperationType.REAL_BALANCE_SETTLEMENT.getDescription()) - .operationType(OperationType.REAL_BALANCE_SETTLEMENT.getCode()) - .currencyCode(tenantGameQuotaFlow.getCurrencyCode()) - .actualBalance(tenantQuotaExchange.getActualBalance()) - .build(); - Boolean result = tenantGameQuotaService.balanceRealChanges(realChangesDTO); - //如果没成功重新跑 - while (!result) { - result = tenantGameQuotaService.balanceRealChanges(realChangesDTO); - } - } - - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java b/ff-game/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java deleted file mode 100644 index e53fcf7..0000000 --- a/ff-game/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.ff.quartz.util; - -import com.ff.base.constant.Constants; -import com.ff.base.constant.ScheduleConstants; -import com.ff.base.datasource.DynamicDataSourceContextHolder; -import com.ff.base.utils.ExceptionUtil; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.bean.BeanUtils; -import com.ff.base.utils.spring.SpringUtils; -import com.ff.quartz.domain.SysJob; -import com.ff.quartz.domain.SysJobLog; -import com.ff.quartz.service.ISysJobLogService; -import org.quartz.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; - -import javax.sql.DataSource; -import java.util.Date; -import java.util.Map; - -/** - * 抽象quartz调用 - * - * @author ff - */ -public abstract class AbstractQuartzJob implements Job { - private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); - - /** - * 线程本地变量 - */ - private static ThreadLocal threadLocal = new ThreadLocal<>(); - - @Override - public void execute(JobExecutionContext context) throws JobExecutionException { - SysJob sysJob = new SysJob(); - BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); - try { - before(context, sysJob); - if (sysJob != null) { - doExecute(context, sysJob); - } - after(context, sysJob, null); - } catch (Exception e) { - log.error("任务执行异常 - :", e); - after(context, sysJob, e); - } - - } - - /** - * 执行前 - * - * @param context 工作执行上下文对象 - * @param sysJob 系统计划任务 - */ - protected void before(JobExecutionContext context, SysJob sysJob) { - threadLocal.set(new Date()); - } - - /** - * 执行后 - * - * @param context 工作执行上下文对象 - * @param sysJob 系统计划任务 - */ - protected void after(JobExecutionContext context, SysJob sysJob, Exception e) { - Date startTime = threadLocal.get(); - threadLocal.remove(); - - final SysJobLog sysJobLog = new SysJobLog(); - sysJobLog.setJobName(sysJob.getJobName()); - sysJobLog.setJobGroup(sysJob.getJobGroup()); - sysJobLog.setInvokeTarget(sysJob.getInvokeTarget()); - sysJobLog.setStartTime(startTime); - sysJobLog.setStopTime(new Date()); - long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); - sysJobLog.setJobMessage(sysJobLog.getJobName() + " 总共耗时:" + runMs + "毫秒"); - if (e != null) { - sysJobLog.setStatus(Constants.FAIL); - String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); - sysJobLog.setExceptionInfo(errorMsg); - } else { - sysJobLog.setStatus(Constants.SUCCESS); - } - - // 写入数据库当中 - SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog); - } - - /** - * 执行方法,由子类重载 - * - * @param context 工作执行上下文对象 - * @param sysJob 系统计划任务 - * @throws Exception 执行过程中的异常 - */ - protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; -} diff --git a/ff-game/src/main/java/com/ff/quartz/util/CronUtils.java b/ff-game/src/main/java/com/ff/quartz/util/CronUtils.java deleted file mode 100644 index d550083..0000000 --- a/ff-game/src/main/java/com/ff/quartz/util/CronUtils.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.ff.quartz.util; - -import org.quartz.CronExpression; - -import java.text.ParseException; -import java.util.Date; - -/** - * cron表达式工具类 - * - * @author ff - * - */ -public class CronUtils -{ - /** - * 返回一个布尔值代表一个给定的Cron表达式的有效性 - * - * @param cronExpression Cron表达式 - * @return boolean 表达式是否有效 - */ - public static boolean isValid(String cronExpression) - { - return CronExpression.isValidExpression(cronExpression); - } - - /** - * 返回一个字符串值,表示该消息无效Cron表达式给出有效性 - * - * @param cronExpression Cron表达式 - * @return String 无效时返回表达式错误描述,如果有效返回null - */ - public static String getInvalidMessage(String cronExpression) - { - try - { - new CronExpression(cronExpression); - return null; - } - catch (ParseException pe) - { - return pe.getMessage(); - } - } - - /** - * 返回下一个执行时间根据给定的Cron表达式 - * - * @param cronExpression Cron表达式 - * @return Long 下次Cron表达式执行时间 - */ - public static Date getNextExecution(String cronExpression) - { - try - { - CronExpression cron = new CronExpression(cronExpression); - return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); - } - catch (ParseException e) - { - throw new IllegalArgumentException(e.getMessage()); - } - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/util/JobInvokeUtil.java b/ff-game/src/main/java/com/ff/quartz/util/JobInvokeUtil.java deleted file mode 100644 index 7403739..0000000 --- a/ff-game/src/main/java/com/ff/quartz/util/JobInvokeUtil.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.ff.quartz.util; - -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.spring.SpringUtils; -import com.ff.quartz.domain.SysJob; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.LinkedList; -import java.util.List; - -/** - * 任务执行工具 - * - * @author ff - */ -public class JobInvokeUtil -{ - /** - * 执行方法 - * - * @param sysJob 系统任务 - */ - public static void invokeMethod(SysJob sysJob) throws Exception - { - String invokeTarget = sysJob.getInvokeTarget(); - String beanName = getBeanName(invokeTarget); - String methodName = getMethodName(invokeTarget); - List methodParams = getMethodParams(invokeTarget); - - if (!isValidClassName(beanName)) - { - Object bean = SpringUtils.getBean(beanName); - invokeMethod(bean, methodName, methodParams); - } - else - { - Object bean = Class.forName(beanName).getDeclaredConstructor().newInstance(); - invokeMethod(bean, methodName, methodParams); - } - } - - /** - * 调用任务方法 - * - * @param bean 目标对象 - * @param methodName 方法名称 - * @param methodParams 方法参数 - */ - private static void invokeMethod(Object bean, String methodName, List methodParams) - throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, - InvocationTargetException - { - if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0) - { - Method method = bean.getClass().getMethod(methodName, getMethodParamsType(methodParams)); - method.invoke(bean, getMethodParamsValue(methodParams)); - } - else - { - Method method = bean.getClass().getMethod(methodName); - method.invoke(bean); - } - } - - /** - * 校验是否为为class包名 - * - * @param invokeTarget 名称 - * @return true是 false否 - */ - public static boolean isValidClassName(String invokeTarget) - { - return StringUtils.countMatches(invokeTarget, ".") > 1; - } - - /** - * 获取bean名称 - * - * @param invokeTarget 目标字符串 - * @return bean名称 - */ - public static String getBeanName(String invokeTarget) - { - String beanName = StringUtils.substringBefore(invokeTarget, "("); - return StringUtils.substringBeforeLast(beanName, "."); - } - - /** - * 获取bean方法 - * - * @param invokeTarget 目标字符串 - * @return method方法 - */ - public static String getMethodName(String invokeTarget) - { - String methodName = StringUtils.substringBefore(invokeTarget, "("); - return StringUtils.substringAfterLast(methodName, "."); - } - - /** - * 获取method方法参数相关列表 - * - * @param invokeTarget 目标字符串 - * @return method方法相关参数列表 - */ - public static List getMethodParams(String invokeTarget) - { - String methodStr = StringUtils.substringBetween(invokeTarget, "(", ")"); - if (StringUtils.isEmpty(methodStr)) - { - return null; - } - String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)"); - List classs = new LinkedList<>(); - for (int i = 0; i < methodParams.length; i++) - { - String str = StringUtils.trimToEmpty(methodParams[i]); - // String字符串类型,以'或"开头 - if (StringUtils.startsWithAny(str, "'", "\"")) - { - classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class }); - } - // boolean布尔类型,等于true或者false - else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) - { - classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); - } - // long长整形,以L结尾 - else if (StringUtils.endsWith(str, "L")) - { - classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class }); - } - // double浮点类型,以D结尾 - else if (StringUtils.endsWith(str, "D")) - { - classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class }); - } - // 其他类型归类为整形 - else - { - classs.add(new Object[] { Integer.valueOf(str), Integer.class }); - } - } - return classs; - } - - /** - * 获取参数类型 - * - * @param methodParams 参数相关列表 - * @return 参数类型列表 - */ - public static Class[] getMethodParamsType(List methodParams) - { - Class[] classs = new Class[methodParams.size()]; - int index = 0; - for (Object[] os : methodParams) - { - classs[index] = (Class) os[1]; - index++; - } - return classs; - } - - /** - * 获取参数值 - * - * @param methodParams 参数相关列表 - * @return 参数值列表 - */ - public static Object[] getMethodParamsValue(List methodParams) - { - Object[] classs = new Object[methodParams.size()]; - int index = 0; - for (Object[] os : methodParams) - { - classs[index] = (Object) os[0]; - index++; - } - return classs; - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java b/ff-game/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java deleted file mode 100644 index 5ec7ff5..0000000 --- a/ff-game/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.ff.quartz.util; - -import com.ff.quartz.domain.SysJob; -import com.ff.quartz.util.AbstractQuartzJob; -import com.ff.quartz.util.JobInvokeUtil; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.JobExecutionContext; - -/** - * 定时任务处理(禁止并发执行) - * - * @author ff - * - */ -@DisallowConcurrentExecution -public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob -{ - @Override - protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception - { - JobInvokeUtil.invokeMethod(sysJob); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/util/QuartzJobExecution.java b/ff-game/src/main/java/com/ff/quartz/util/QuartzJobExecution.java deleted file mode 100644 index 18f99f8..0000000 --- a/ff-game/src/main/java/com/ff/quartz/util/QuartzJobExecution.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ff.quartz.util; - -import com.ff.quartz.domain.SysJob; -import com.ff.quartz.util.AbstractQuartzJob; -import com.ff.quartz.util.JobInvokeUtil; -import org.quartz.JobExecutionContext; - -/** - * 定时任务处理(允许并发执行) - * - * @author ff - * - */ -public class QuartzJobExecution extends AbstractQuartzJob -{ - @Override - protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception - { - JobInvokeUtil.invokeMethod(sysJob); - } -} diff --git a/ff-game/src/main/java/com/ff/quartz/util/ScheduleUtils.java b/ff-game/src/main/java/com/ff/quartz/util/ScheduleUtils.java deleted file mode 100644 index 6a966b8..0000000 --- a/ff-game/src/main/java/com/ff/quartz/util/ScheduleUtils.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.ff.quartz.util; - -import com.ff.base.constant.Constants; -import com.ff.base.constant.ScheduleConstants; -import com.ff.base.exception.job.TaskException; -import com.ff.base.exception.job.TaskException.Code; -import com.ff.base.utils.StringUtils; -import com.ff.base.utils.spring.SpringUtils; -import com.ff.quartz.domain.SysJob; -import org.quartz.*; - -/** - * 定时任务工具类 - * - * @author ff - * - */ -public class ScheduleUtils -{ - /** - * 得到quartz任务类 - * - * @param sysJob 执行计划 - * @return 具体执行任务类 - */ - private static Class getQuartzJobClass(SysJob sysJob) - { - boolean isConcurrent = "0".equals(sysJob.getConcurrent()); - return isConcurrent ? QuartzJobExecution.class : QuartzDisallowConcurrentExecution.class; - } - - /** - * 构建任务触发对象 - */ - public static TriggerKey getTriggerKey(Long jobId, String jobGroup) - { - return TriggerKey.triggerKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); - } - - /** - * 构建任务键对象 - */ - public static JobKey getJobKey(Long jobId, String jobGroup) - { - return JobKey.jobKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); - } - - /** - * 创建定时任务 - */ - public static void createScheduleJob(Scheduler scheduler, SysJob job) throws SchedulerException, TaskException - { - Class jobClass = getQuartzJobClass(job); - // 构建job信息 - Long jobId = job.getJobId(); - String jobGroup = job.getJobGroup(); - JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(getJobKey(jobId, jobGroup)).build(); - - // 表达式调度构建器 - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression()); - cronScheduleBuilder = handleCronScheduleMisfirePolicy(job, cronScheduleBuilder); - - // 按新的cronExpression表达式构建一个新的trigger - CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(jobId, jobGroup)) - .withSchedule(cronScheduleBuilder).build(); - - // 放入参数,运行时的方法可以获取 - jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); - - // 判断是否存在 - if (scheduler.checkExists(getJobKey(jobId, jobGroup))) - { - // 防止创建时存在数据问题 先移除,然后在执行创建操作 - scheduler.deleteJob(getJobKey(jobId, jobGroup)); - } - - // 判断任务是否过期 - if (StringUtils.isNotNull(CronUtils.getNextExecution(job.getCronExpression()))) - { - // 执行调度任务 - scheduler.scheduleJob(jobDetail, trigger); - } - - // 暂停任务 - if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue())) - { - scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); - } - } - - /** - * 设置定时任务策略 - */ - public static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) - throws TaskException - { - switch (job.getMisfirePolicy()) - { - case ScheduleConstants.MISFIRE_DEFAULT: - return cb; - case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: - return cb.withMisfireHandlingInstructionIgnoreMisfires(); - case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: - return cb.withMisfireHandlingInstructionFireAndProceed(); - case ScheduleConstants.MISFIRE_DO_NOTHING: - return cb.withMisfireHandlingInstructionDoNothing(); - default: - throw new TaskException("The task misfire policy '" + job.getMisfirePolicy() - + "' cannot be used in cron schedule tasks", Code.CONFIG_ERROR); - } - } - - /** - * 检查包名是否为白名单配置 - * - * @param invokeTarget 目标字符串 - * @return 结果 - */ - public static boolean whiteList(String invokeTarget) - { - String packageName = StringUtils.substringBefore(invokeTarget, "("); - int count = StringUtils.countMatches(packageName, "."); - if (count > 1) - { - return StringUtils.containsAnyIgnoreCase(invokeTarget, Constants.JOB_WHITELIST_STR); - } - Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]); - String beanPackageName = obj.getClass().getPackage().getName(); - return StringUtils.containsAnyIgnoreCase(beanPackageName, Constants.JOB_WHITELIST_STR) - && !StringUtils.containsAnyIgnoreCase(beanPackageName, Constants.JOB_ERROR_STR); - } -} diff --git a/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java b/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java deleted file mode 100644 index 118e849..0000000 --- a/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.ff.sys.domain; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.ff.base.annotation.Excel; -import com.ff.base.core.domain.BaseEntity; -import lombok.Data; -/** - * 系统反馈对象 ff_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代理 */ - @Excel(name = "用户类型 1 租户 2代理 ") - private Integer userType; - - /** 用户id */ - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "用户id", width = 30, dateFormat = "yyyy-MM-dd") - private Long userId; - - /** 标题 */ - @Excel(name = "标题") - private String title; - - /** 手机号 */ - @Excel(name = "手机号") - private String phone; - - /** 反馈内容 */ - @Excel(name = "反馈内容") - private String content; - - /** 状态 1待处理 2已处理 */ - @Excel(name = "状态 1待处理 2已处理") - private Integer status; - - /** 回复内容 */ - @Excel(name = "回复内容") - private String replyContent; - - -} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java index 1b5f853..b43ee4f 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java @@ -1,19 +1,10 @@ package com.ff.tenant.controller; import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; import com.ff.base.core.page.TableDataInfo; -import com.ff.base.system.domain.TenantPlatform; -import com.ff.base.system.domain.TenantSecretKey; -import com.ff.base.system.service.ITenantPlatformService; -import com.ff.base.system.service.ITenantSecretKeyService; -import com.ff.common.domain.TenantGameQuota; -import com.ff.common.service.ITenantGameQuotaService; import com.ff.game.domain.GameBettingDetails; import com.ff.game.dto.GameBettingDetailsDTO; import com.ff.game.service.IGameBettingDetailsService; -import com.ff.tenant.dto.TenantDTO; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -46,8 +37,7 @@ public class TenantBettingDetailsController extends BaseController { */ @PreAuthorize("@ss.hasPermi('tenant:betting:list')") @GetMapping("/list") - public TableDataInfo list(GameBettingDetailsDTO gameBettingDetails) - { + public TableDataInfo list(GameBettingDetailsDTO gameBettingDetails) { gameBettingDetails.setTenantKey(getUsername()); startPage(); List gameBettingDetailsList = gameBettingDetailsService.selectGameBettingDetailsList(gameBettingDetails); diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java index 9df1415..a7918d2 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java @@ -4,15 +4,16 @@ import com.ff.base.core.controller.BaseController; import com.ff.base.core.domain.AjaxResult; import com.ff.base.system.domain.TenantPlatform; import com.ff.base.system.domain.TenantSecretKey; -import com.ff.base.system.service.ITenantAgentService; import com.ff.base.system.service.ITenantPlatformService; import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.common.domain.TenantGameQuota; -import com.ff.common.service.ITenantGameQuotaService; import com.ff.tenant.dto.TenantDTO; +import com.ff.tenant.service.ITenantGameQuotaService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -57,8 +58,8 @@ public class TenantController extends BaseController { @GetMapping("/platforms/{currencyCode}") public AjaxResult getTenantPlatformsInfo(@PathVariable("currencyCode") String currencyCode) { return success(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder() - .currencyCode(currencyCode) - .tenantId(getUserId()) + .currencyCode(currencyCode) + .tenantId(getUserId()) .build())); } diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java index c1f4dd3..0ecbc17 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java @@ -6,6 +6,7 @@ import com.ff.game.domain.GameBettingDetails; import com.ff.game.domain.GameExchangeMoney; import com.ff.game.dto.GameExchangeMoneyDTO; import com.ff.game.service.IGameBettingDetailsService; +import com.ff.game.service.IGameExchangeMoneyBiz; import com.ff.game.service.IGameExchangeMoneyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -31,6 +32,8 @@ public class TenantExchangeController extends BaseController { @Resource private IGameExchangeMoneyService gameExchangeMoneyService; + @Resource + private IGameExchangeMoneyBiz gameExchangeMoneyBiz; /** * 列表 @@ -43,7 +46,7 @@ public class TenantExchangeController extends BaseController { public TableDataInfo list(GameExchangeMoneyDTO gameExchangeMoneyDTO) { gameExchangeMoneyDTO.setTenantKey(getUsername()); startPage(); - List gameExchangeMoneyDTOS = gameExchangeMoneyService.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); + List gameExchangeMoneyDTOS = gameExchangeMoneyBiz.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); return getDataTable(gameExchangeMoneyDTOS); } diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java index 55948ac..cb3f67c 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java @@ -3,10 +3,7 @@ package com.ff.tenant.controller; import com.ff.base.core.controller.BaseController; import com.ff.base.core.page.TableDataInfo; import com.ff.common.domain.TenantGameQuotaFlow; -import com.ff.common.service.ITenantGameQuotaFlowService; -import com.ff.game.domain.GameBettingDetails; -import com.ff.game.service.IGameBettingDetailsService; -import org.springframework.beans.factory.annotation.Autowired; +import com.ff.tenant.service.ITenantGameQuotaFlowService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,7 +24,6 @@ import java.util.List; public class TenantQuotaFlowController extends BaseController { - @Resource private ITenantGameQuotaFlowService tenantGameQuotaFlowService; @@ -40,8 +36,7 @@ public class TenantQuotaFlowController extends BaseController { */ @PreAuthorize("@ss.hasPermi('tenant:quota:flow:list')") @GetMapping("/list") - public TableDataInfo list(TenantGameQuotaFlow tenantGameQuotaFlow) - { + public TableDataInfo list(TenantGameQuotaFlow tenantGameQuotaFlow) { tenantGameQuotaFlow.setTenantKey(getUsername()); startPage(); List tenantGameQuotaFlows = tenantGameQuotaFlowService.selectTenantGameQuotaFlowList(tenantGameQuotaFlow); diff --git a/ff-game/src/main/java/com/ff/tenant/service/ITenantGameQuotaBiz.java b/ff-game/src/main/java/com/ff/tenant/service/ITenantGameQuotaBiz.java new file mode 100644 index 0000000..396bc15 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/service/ITenantGameQuotaBiz.java @@ -0,0 +1,51 @@ +package com.ff.tenant.service; + +import com.ff.common.domain.TenantGameQuota; +import com.ff.common.dto.BalanceChangesDTO; +import com.ff.common.dto.BalanceRealChangesDTO; +import com.ff.common.dto.GameBalanceExchange; + +import java.math.BigDecimal; + +/** + * 租户游戏配额Service接口 + * + * @author shi + * @date 2025-02-12 + */ +public interface ITenantGameQuotaBiz { + + /** + * 余额变化 + * + * @param balanceChangesDTO 余额更改为 + * @return {@link Boolean } + */ + Boolean balanceChanges(BalanceChangesDTO balanceChangesDTO); + + + /** + * 真实余额变化 + * + * @param balanceRealChangesDTO 余额更改为 + * @return {@link Boolean } + */ + Boolean balanceRealChanges(BalanceRealChangesDTO balanceRealChangesDTO); + + + /** + * 游戏余额兑换 + * + * @param gameBalanceExchange 游戏余额兑换 + * @return {@link BigDecimal } + */ + BigDecimal gameBalanceExchange(GameBalanceExchange gameBalanceExchange); + + /** + * 查询租户游戏配额 + * + * @param tenantKey 租户游戏配额主键 + * @return 租户游戏配额 + */ + TenantGameQuota selectTenantGameQuotaByTenantKey(String tenantKey, String quotaType); +} diff --git a/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java b/ff-game/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaBizImpl.java similarity index 90% rename from ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java rename to ff-game/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaBizImpl.java index 31eced5..2129678 100644 --- a/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java +++ b/ff-game/src/main/java/com/ff/tenant/service/impl/TenantGameQuotaBizImpl.java @@ -1,4 +1,4 @@ -package com.ff.common.service.impl; +package com.ff.tenant.service.impl; import java.math.BigDecimal; import java.math.RoundingMode; @@ -28,6 +28,10 @@ import com.ff.game.api.IGamesService; import com.ff.game.api.request.MemberInfoRequestDTO; import com.ff.member.domain.Member; import com.ff.member.service.IMemberService; +import com.ff.tenant.mapper.TenantGameQuotaMapper; +import com.ff.tenant.service.ITenantGameQuotaBiz; +import com.ff.tenant.service.ITenantGameQuotaFlowService; +import com.ff.tenant.service.ITenantQuotaExchangeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ff.common.mapper.TenantGameQuotaMapper; @@ -37,6 +41,9 @@ import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Map; /** * 租户游戏配额Service业务层处理 @@ -45,11 +52,10 @@ import javax.annotation.Resource; * @date 2025-02-12 */ @Service -public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { +public class TenantGameQuotaBizImpl implements ITenantGameQuotaBiz { @Autowired private TenantGameQuotaMapper tenantGameQuotaMapper; - @Resource private ITenantGameQuotaFlowService tenantGameQuotaFlowService; @@ -68,76 +74,6 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { @Resource private ITenantPlatformService tenantPlatformService; - /** - * 查询租户游戏配额 - * - * @param id 租户游戏配额主键 - * @return 租户游戏配额 - */ - @Override - public TenantGameQuota selectTenantGameQuotaById(Long id) { - return tenantGameQuotaMapper.selectTenantGameQuotaById(id); - } - - - /** - * 查询租户游戏配额列表 - * - * @param tenantGameQuota 租户游戏配额 - * @return 租户游戏配额 - */ - @Override - public List selectTenantGameQuotaList(TenantGameQuota tenantGameQuota) { - return tenantGameQuotaMapper.selectTenantGameQuotaList(tenantGameQuota); - } - - /** - * 新增租户游戏配额 - * - * @param tenantGameQuota 租户游戏配额 - * @return 结果 - */ - @Override - public int insertTenantGameQuota(TenantGameQuota tenantGameQuota) { - tenantGameQuota.setId(IdUtil.getSnowflakeNextId()); - tenantGameQuota.setCreateTime(DateUtils.getNowDate()); - return tenantGameQuotaMapper.insertTenantGameQuota(tenantGameQuota); - } - - /** - * 修改租户游戏配额 - * - * @param tenantGameQuota 租户游戏配额 - * @return 结果 - */ - @Override - public int updateTenantGameQuota(TenantGameQuota tenantGameQuota) { - tenantGameQuota.setUpdateTime(DateUtils.getNowDate()); - return tenantGameQuotaMapper.updateTenantGameQuota(tenantGameQuota); - } - - /** - * 批量删除租户游戏配额 - * - * @param ids 需要删除的租户游戏配额主键 - * @return 结果 - */ - @Override - public int deleteTenantGameQuotaByIds(Long[] ids) { - return tenantGameQuotaMapper.deleteTenantGameQuotaByIds(ids); - } - - /** - * 删除租户游戏配额信息 - * - * @param id 租户游戏配额主键 - * @return 结果 - */ - @Override - public int deleteTenantGameQuotaById(Long id) { - return tenantGameQuotaMapper.deleteTenantGameQuotaById(id); - } - /** * 平衡变化 * diff --git a/ff-game/src/main/java/com/ff/xxljob/config/XxlJobConfig.java b/ff-game/src/main/java/com/ff/xxljob/config/XxlJobConfig.java new file mode 100644 index 0000000..60c88da --- /dev/null +++ b/ff-game/src/main/java/com/ff/xxljob/config/XxlJobConfig.java @@ -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; + } +} diff --git a/ff-game/src/main/java/com/ff/xxljob/task/AbstractTask.java b/ff-game/src/main/java/com/ff/xxljob/task/AbstractTask.java new file mode 100644 index 0000000..b022a40 --- /dev/null +++ b/ff-game/src/main/java/com/ff/xxljob/task/AbstractTask.java @@ -0,0 +1,31 @@ +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 { + + /** + * 执行有参方法 + * + * @param params 参数 + */ + abstract void doExecute(String params); + + /** + * 无参执行方法 执行业务前切换数据源 + */ + @Override + public void execute() throws Exception { + String params = XxlJobHelper.getJobParam(); // 获取任务参数 + doExecute(params); + } + +} diff --git a/ff-game/src/main/resources/application-druid.yml b/ff-game/src/main/resources/application-druid.yml deleted file mode 100644 index dd61f2a..0000000 --- a/ff-game/src/main/resources/application-druid.yml +++ /dev/null @@ -1,95 +0,0 @@ -# 数据源配置 -spring: - # redis 配置 - redis: - # 地址 - host: 192.168.50.11 - # 端口,默认为6379 - port: 26379 - # 数据库索引 - database: 10 - # 密码 - password: reAa123456 - # 连接超时时间 - timeout: 10s - lettuce: - pool: - # 连接池中的最小空闲连接 - min-idle: 0 - # 连接池中的最大空闲连接 - max-idle: 8 - # 连接池的最大数据库连接数 - max-active: 8 - # #连接池最大阻塞等待时间(使用负值表示没有限制) - max-wait: -1ms - - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver - druid: - # 主库数据源 - master: - url: jdbc:mysql://192.168.50.11:3306/ff-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true - username: root - password: 123456 - # 初始连接数 - initialSize: 5 - # 最小连接池数量 - minIdle: 10 - # 最大连接池数量 - maxActive: 20 - # 配置获取连接等待超时的时间 - maxWait: 60000 - # 配置连接超时时间 - connectTimeout: 30000 - # 配置网络超时时间 - socketTimeout: 60000 - # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 - timeBetweenEvictionRunsMillis: 60000 - # 配置一个连接在池中最小生存的时间,单位是毫秒 - minEvictableIdleTimeMillis: 300000 - # 配置一个连接在池中最大生存的时间,单位是毫秒 - maxEvictableIdleTimeMillis: 900000 - # 配置检测连接是否有效 - validationQuery: SELECT 1 FROM DUAL - testWhileIdle: true - testOnBorrow: false - testOnReturn: false - webStatFilter: - enabled: true - statViewServlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: ff - login-password: 123456 - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true - -forest: - backend: okhttp3 # 后端HTTP框架(默认为 okhttp3) - max-connections: 1000 # 连接池最大连接数(默认为 500) - max-route-connections: 500 # 每个路由的最大连接数(默认为 500) - max-request-queue-size: 100 # [自v1.5.22版本起可用] 最大请求等待队列大小 - max-async-thread-size: 300 # [自v1.5.21版本起可用] 最大异步线程数 - max-async-queue-size: 16 # [自v1.5.22版本起可用] 最大异步线程池队列大小 - timeout: 3000 # [已不推荐使用] 请求超时时间,单位为毫秒(默认为 3000) - connect-timeout: 3000 # 连接超时时间,单位为毫秒(默认为 timeout) - read-timeout: 3000 # 数据读取超时时间,单位为毫秒(默认为 timeout) - max-retry-count: 0 # 请求失败后重试次数(默认为 0 次不重试) - ssl-protocol: TLS # 单向验证的HTTPS的默认TLS协议(默认为 TLS) - log-enabled: true # 打开或关闭日志(默认为 true) - log-request: true # 打开/关闭Forest请求日志(默认为 true) - log-response-status: true # 打开/关闭Forest响应状态日志(默认为 true) - log-response-content: true # 打开/关闭Forest响应内容日志(默认为 false) - async-mode: platform # [自v1.5.27版本起可用] 异步模式(默认为 platform) diff --git a/ff-game/src/main/resources/application-prod.properties b/ff-game/src/main/resources/application-prod.properties new file mode 100644 index 0000000..70731ce --- /dev/null +++ b/ff-game/src/main/resources/application-prod.properties @@ -0,0 +1,70 @@ + +# 引入子配置文件 +spring.config.import=\ + classpath:config/prod/mybatis.properties,\ + classpath:config/prod/redis.properties,\ + classpath:config/prod/forest.properties,\ + classpath:config/prod/xxljob.properties,\ + classpath:config/prod/datasource.properties + + +# 项目相关配置 +ff.name=FF +ff.version=0.0.1 +ff.copyrightYear=2024 +ff.profile=/opt/gameApi/dist/game-api/uploadPath +ff.addressEnabled=false +ff.captchaType=math + +# 开发环境配置 +server.port=38080 +server.servlet.context-path=/ff-api +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 +logging.file.path=/opt/gameApi/dist/game-api/logs + +# 用户配置 +user.password.maxRetryCount=5 +user.password.lockTime=10 + +# 跑批处理配置 +batchProcessing.commissionBatchSize=20 +batchProcessing.agentLevelBatchSize=50 +batchProcessing.bettingDataBatchSize=1000 + +# 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 +spring.devtools.restart.enabled=false + +# token配置 +token.header=Authorization +token.secret=abcdefghijklmnopqrstuvwxyz +token.expireTime=10080 + +# MyBatis配置 +mybatis.typeAliasesPackage=com.ff.**.domain +mybatis.mapperLocations=classpath*:mapper/**/*Mapper.xml +mybatis.configLocation=classpath:mybatis/mybatis-config.xml + +# PageHelper分页插件 +pagehelper.helperDialect=mysql +pagehelper.supportMethodsArguments=true +pagehelper.params=count=countSql + +# Swagger配置 +swagger.enabled=true +swagger.pathMapping=/ + +# 防止XSS攻击 +xss.enabled=true +xss.excludes=/system/notice +xss.urlPatterns=/system/*,/monitor/*,/tool/* diff --git a/ff-game/src/main/resources/application-prod.yml b/ff-game/src/main/resources/application-prod.yml deleted file mode 100644 index f0f02ed..0000000 --- a/ff-game/src/main/resources/application-prod.yml +++ /dev/null @@ -1,115 +0,0 @@ -# 项目相关配置 -ff: - # 文件路径 示例( Windows配置D:/ff/uploadPath,Linux配置 /home/ff/uploadPath) - profile: /opt/gameApi/dist/game-api/uploadPath -# 开发环境配置 -server: - # 服务器的HTTP端口,默认为8080 - port: 38080 - servlet: - # 应用的访问路径 - context-path: /ff-api - -# 日志配置 -logging: - level: - com.ff: debug - org.springframework: warn - file: - path: /opt/gameApi/dist/game-api/logs - -# 数据源配置 -spring: - # redis 配置 - redis: - # 地址 - host: 127.0.0.1 - # 端口,默认为6379 - port: 26379 - # 数据库索引 - database: 1 - # 密码 - password: reAa123456 - # 连接超时时间 - timeout: 10s - lettuce: - pool: - # 连接池中的最小空闲连接 - min-idle: 0 - # 连接池中的最大空闲连接 - max-idle: 8 - # 连接池的最大数据库连接数 - max-active: 8 - # #连接池最大阻塞等待时间(使用负值表示没有限制) - max-wait: -1ms - - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver - druid: - # 主库数据源 - master: - url: jdbc:mysql://127.0.0.1:23306/ff-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true - username: ff-game - password: bmGCJCyhfDXnPspe - # 初始连接数 - initialSize: 5 - # 最小连接池数量 - minIdle: 10 - # 最大连接池数量 - maxActive: 20 - # 配置获取连接等待超时的时间 - maxWait: 60000 - # 配置连接超时时间 - connectTimeout: 30000 - # 配置网络超时时间 - socketTimeout: 60000 - # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 - timeBetweenEvictionRunsMillis: 60000 - # 配置一个连接在池中最小生存的时间,单位是毫秒 - minEvictableIdleTimeMillis: 300000 - # 配置一个连接在池中最大生存的时间,单位是毫秒 - maxEvictableIdleTimeMillis: 900000 - # 配置检测连接是否有效 - validationQuery: SELECT 1 FROM DUAL - testWhileIdle: true - testOnBorrow: false - testOnReturn: false - webStatFilter: - enabled: true - statViewServlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: ff - login-password: ff_prod - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true - -forest: - backend: okhttp3 # 后端HTTP框架(默认为 okhttp3) - max-connections: 1000 # 连接池最大连接数(默认为 500) - max-route-connections: 500 # 每个路由的最大连接数(默认为 500) - max-request-queue-size: 100 # [自v1.5.22版本起可用] 最大请求等待队列大小 - max-async-thread-size: 300 # [自v1.5.21版本起可用] 最大异步线程数 - max-async-queue-size: 16 # [自v1.5.22版本起可用] 最大异步线程池队列大小 - timeout: 3000 # [已不推荐使用] 请求超时时间,单位为毫秒(默认为 3000) - connect-timeout: 3000 # 连接超时时间,单位为毫秒(默认为 timeout) - read-timeout: 3000 # 数据读取超时时间,单位为毫秒(默认为 timeout) - max-retry-count: 3 # 请求失败后重试次数(默认为 0 次不重试) - ssl-protocol: TLS # 单向验证的HTTPS的默认TLS协议(默认为 TLS) - log-enabled: true # 打开或关闭日志(默认为 true) - log-request: true # 打开/关闭Forest请求日志(默认为 true) - log-response-status: true # 打开/关闭Forest响应状态日志(默认为 true) - log-response-content: false # 打开/关闭Forest响应内容日志(默认为 false) - async-mode: platform # [自v1.5.27版本起可用] 异步模式(默认为 platform) \ No newline at end of file diff --git a/ff-game/src/main/resources/application-test.properties b/ff-game/src/main/resources/application-test.properties new file mode 100644 index 0000000..b948166 --- /dev/null +++ b/ff-game/src/main/resources/application-test.properties @@ -0,0 +1,69 @@ + +# 引入子配置文件 +spring.config.import=\ + classpath:config/test/mybatis.properties,\ + classpath:config/test/redis.properties,\ + classpath:config/test/forest.properties,\ + classpath:config/test/xxljob.properties,\ + classpath:config/test/datasource.properties + + +# 项目相关配置 +ff.name=FF +ff.version=0.0.1 +ff.copyrightYear=2024 +ff.profile=D:/ff/uploadPath +ff.addressEnabled=false +ff.captchaType=math + +# 开发环境配置 +server.port=9080 +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 + +# 跑批处理配置 +batchProcessing.commissionBatchSize=20 +batchProcessing.agentLevelBatchSize=50 +batchProcessing.bettingDataBatchSize=1000 + +# 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 +spring.devtools.restart.enabled=false + +# token配置 +token.header=Authorization +token.secret=abcdefghijklmnopqrstuvwxyz +token.expireTime=10080 + +# MyBatis配置 +mybatis.typeAliasesPackage=com.ff.**.domain +mybatis.mapperLocations=classpath*:mapper/**/*Mapper.xml +mybatis.configLocation=classpath:mybatis/mybatis-config.xml + +# PageHelper分页插件 +pagehelper.helperDialect=mysql +pagehelper.supportMethodsArguments=true +pagehelper.params=count=countSql + +# Swagger配置 +swagger.enabled=true +swagger.pathMapping=/ + +# 防止XSS攻击 +xss.enabled=true +xss.excludes=/system/notice +xss.urlPatterns=/system/*,/monitor/*,/tool/* diff --git a/ff-game/src/main/resources/application.properties b/ff-game/src/main/resources/application.properties new file mode 100644 index 0000000..f841722 --- /dev/null +++ b/ff-game/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.profiles.active=test diff --git a/ff-game/src/main/resources/application.yml b/ff-game/src/main/resources/application.yml deleted file mode 100644 index 359be07..0000000 --- a/ff-game/src/main/resources/application.yml +++ /dev/null @@ -1,123 +0,0 @@ -# 项目相关配置 -ff: - # 名称 - name: FF - # 版本 - version: 0.0.1 - # 版权年份 - copyrightYear: 2024 - # 文件路径 示例( Windows配置D:/ff/uploadPath,Linux配置 /home/ff/uploadPath) - profile: D:/ff/uploadPath - # 获取ip地址开关 - addressEnabled: false - # 验证码类型 math 数字计算 char 字符验证 - captchaType: math - -# 开发环境配置 -server: - # 服务器的HTTP端口,默认为8080 - port: 9080 - servlet: - # 应用的访问路径 - context-path: / - tomcat: - # tomcat的URI编码 - uri-encoding: UTF-8 - # 连接数满后的排队数,默认为100 - accept-count: 1000 - threads: - # tomcat最大线程数,默认为200 - max: 800 - # Tomcat启动初始化的线程数,默认值10 - min-spare: 100 - -# 日志配置 -logging: - level: - com.ff: debug - org.springframework: warn - -# 用户配置 -user: - password: - # 密码最大错误次数 - maxRetryCount: 5 - # 密码锁定时间(默认10分钟) - lockTime: 10 - -# 跑批处理配置 -batchProcessing: - # 批量数量 - commissionBatchSize: 20 - agentLevelBatchSize: 50 - bettingDataBatchSize: 1000 - -# Spring配置 -spring: - mvc: - pathmatch: - matching-strategy: ant_path_matcher - # 资源信息 - messages: - # 国际化资源文件路径 - basename: i18n/messages - profiles: - active: druid - # 文件上传 - servlet: - multipart: - # 单个文件大小 - max-file-size: 20MB - # 设置总上传的文件大小 - max-request-size: 20MB - # 服务模块 - devtools: - restart: - # 热部署开关 - enabled: false - -# token配置 -token: - # 令牌自定义标识 - header: Authorization - # 令牌密钥 - secret: abcdefghijklmnopqrstuvwxyz - # 令牌有效期(默认10080分钟 七天) - expireTime: 10080 - -# MyBatis配置 -mybatis: - # 搜索指定包别名 - typeAliasesPackage: com.ff.**.domain - # 配置mapper的扫描,找到所有的mapper.xml映射文件 - mapperLocations: classpath*:mapper/**/*Mapper.xml - # 加载全局的配置文件 - configLocation: classpath:mybatis/mybatis-config.xml - -# PageHelper分页插件 -pagehelper: - helperDialect: mysql - supportMethodsArguments: true - params: count=countSql - -# Swagger配置 -swagger: - # 是否开启swagger - enabled: true - # 请求前缀 - pathMapping: / - -# 防止XSS攻击 -xss: - # 过滤开关 - enabled: true - # 排除链接(多个用逗号分隔) - excludes: /system/notice - # 匹配链接 - urlPatterns: /system/*,/monitor/*,/tool/* - - - - - - diff --git a/ff-game/src/main/resources/config/prod/datasource.properties b/ff-game/src/main/resources/config/prod/datasource.properties new file mode 100644 index 0000000..f1a5b52 --- /dev/null +++ b/ff-game/src/main/resources/config/prod/datasource.properties @@ -0,0 +1,35 @@ +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver + +# 主库 +spring.datasource.druid.master.url=jdbc:mysql://127.0.0.1:23306/ff-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true +spring.datasource.druid.master.username=ff-game +spring.datasource.druid.master.password=bmGCJCyhfDXnPspe + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=10 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.connectTimeout=30000 +spring.datasource.druid.socketTimeout=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.maxEvictableIdleTimeMillis=900000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false + +spring.datasource.druid.webStatFilter.enabled=true +spring.datasource.druid.statViewServlet.enabled=true +spring.datasource.druid.statViewServlet.allow= +spring.datasource.druid.statViewServlet.url-pattern=/druid/* +spring.datasource.druid.statViewServlet.login-username=ff +spring.datasource.druid.statViewServlet.login-password=123456 + +spring.datasource.druid.filter.stat.enabled=true +spring.datasource.druid.filter.stat.log-slow-sql=true +spring.datasource.druid.filter.stat.slow-sql-millis=1000 +spring.datasource.druid.filter.stat.merge-sql=true + +spring.datasource.druid.filter.wall.config.multi-statement-allow=true diff --git a/ff-game/src/main/resources/config/prod/forest.properties b/ff-game/src/main/resources/config/prod/forest.properties new file mode 100644 index 0000000..088f953 --- /dev/null +++ b/ff-game/src/main/resources/config/prod/forest.properties @@ -0,0 +1,16 @@ +forest.backend=okhttp3 +forest.max-connections=1000 +forest.max-route-connections=500 +forest.max-request-queue-size=100 +forest.max-async-thread-size=300 +forest.max-async-queue-size=16 +forest.timeout=3000 +forest.connect-timeout=3000 +forest.read-timeout=3000 +forest.max-retry-count=0 +forest.ssl-protocol=TLS +forest.log-enabled=true +forest.log-request=true +forest.log-response-status=true +forest.log-response-content=true +forest.async-mode=platform diff --git a/ff-game/src/main/resources/config/prod/mybatis.properties b/ff-game/src/main/resources/config/prod/mybatis.properties new file mode 100644 index 0000000..fbfd66b --- /dev/null +++ b/ff-game/src/main/resources/config/prod/mybatis.properties @@ -0,0 +1,3 @@ +mybatis.typeAliasesPackage=com.ff.**.domain +mybatis.mapperLocations=classpath*:mapper/**/*Mapper.xml +mybatis.configLocation=classpath:mybatis/mybatis-config.xml diff --git a/ff-game/src/main/resources/config/prod/redis.properties b/ff-game/src/main/resources/config/prod/redis.properties new file mode 100644 index 0000000..2541864 --- /dev/null +++ b/ff-game/src/main/resources/config/prod/redis.properties @@ -0,0 +1,9 @@ +spring.redis.host=192.168.50.11 +spring.redis.port=26379 +spring.redis.database=10 +spring.redis.password=reAa123456 +spring.redis.timeout=10s +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 diff --git a/ff-game/src/main/resources/config/prod/xxljob.properties b/ff-game/src/main/resources/config/prod/xxljob.properties new file mode 100644 index 0000000..d1ddbc6 --- /dev/null +++ b/ff-game/src/main/resources/config/prod/xxljob.properties @@ -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:13999 +xxl.job.executor.ip=192.168.50.28 +xxl.job.executor.port=13999 +xxl.job.executor.logpath=./logs/job +xxl.job.executor.logretentiondays=30 \ No newline at end of file diff --git a/ff-game/src/main/resources/config/test/datasource.properties b/ff-game/src/main/resources/config/test/datasource.properties new file mode 100644 index 0000000..9cc82d2 --- /dev/null +++ b/ff-game/src/main/resources/config/test/datasource.properties @@ -0,0 +1,35 @@ +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver + +# 主库 +spring.datasource.druid.master.url=jdbc:mysql://192.168.50.11:3306/ff-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true +spring.datasource.druid.master.username=root +spring.datasource.druid.master.password=123456 + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=10 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.connectTimeout=30000 +spring.datasource.druid.socketTimeout=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.maxEvictableIdleTimeMillis=900000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false + +spring.datasource.druid.webStatFilter.enabled=true +spring.datasource.druid.statViewServlet.enabled=true +spring.datasource.druid.statViewServlet.allow= +spring.datasource.druid.statViewServlet.url-pattern=/druid/* +spring.datasource.druid.statViewServlet.login-username=ff +spring.datasource.druid.statViewServlet.login-password=123456 + +spring.datasource.druid.filter.stat.enabled=true +spring.datasource.druid.filter.stat.log-slow-sql=true +spring.datasource.druid.filter.stat.slow-sql-millis=1000 +spring.datasource.druid.filter.stat.merge-sql=true + +spring.datasource.druid.filter.wall.config.multi-statement-allow=true diff --git a/ff-game/src/main/resources/config/test/forest.properties b/ff-game/src/main/resources/config/test/forest.properties new file mode 100644 index 0000000..088f953 --- /dev/null +++ b/ff-game/src/main/resources/config/test/forest.properties @@ -0,0 +1,16 @@ +forest.backend=okhttp3 +forest.max-connections=1000 +forest.max-route-connections=500 +forest.max-request-queue-size=100 +forest.max-async-thread-size=300 +forest.max-async-queue-size=16 +forest.timeout=3000 +forest.connect-timeout=3000 +forest.read-timeout=3000 +forest.max-retry-count=0 +forest.ssl-protocol=TLS +forest.log-enabled=true +forest.log-request=true +forest.log-response-status=true +forest.log-response-content=true +forest.async-mode=platform diff --git a/ff-game/src/main/resources/config/test/mybatis.properties b/ff-game/src/main/resources/config/test/mybatis.properties new file mode 100644 index 0000000..fbfd66b --- /dev/null +++ b/ff-game/src/main/resources/config/test/mybatis.properties @@ -0,0 +1,3 @@ +mybatis.typeAliasesPackage=com.ff.**.domain +mybatis.mapperLocations=classpath*:mapper/**/*Mapper.xml +mybatis.configLocation=classpath:mybatis/mybatis-config.xml diff --git a/ff-game/src/main/resources/config/test/redis.properties b/ff-game/src/main/resources/config/test/redis.properties new file mode 100644 index 0000000..2541864 --- /dev/null +++ b/ff-game/src/main/resources/config/test/redis.properties @@ -0,0 +1,9 @@ +spring.redis.host=192.168.50.11 +spring.redis.port=26379 +spring.redis.database=10 +spring.redis.password=reAa123456 +spring.redis.timeout=10s +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 diff --git a/ff-game/src/main/resources/config/test/xxljob.properties b/ff-game/src/main/resources/config/test/xxljob.properties new file mode 100644 index 0000000..d1ddbc6 --- /dev/null +++ b/ff-game/src/main/resources/config/test/xxljob.properties @@ -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:13999 +xxl.job.executor.ip=192.168.50.28 +xxl.job.executor.port=13999 +xxl.job.executor.logpath=./logs/job +xxl.job.executor.logretentiondays=30 \ No newline at end of file diff --git a/ff-game/src/main/resources/logback.xml b/ff-game/src/main/resources/logback.xml index e4f275d..67659a6 100644 --- a/ff-game/src/main/resources/logback.xml +++ b/ff-game/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterBizMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterBizMapper.xml new file mode 100644 index 0000000..3b53a78 --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterBizMapper.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml index c1b2cd7..ae4579b 100644 --- a/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml @@ -1,100 +1,64 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - select id,order_id, agent_id, invite_code, account, password, balance, register_time, register_ip, register_ip_city, status, create_by, create_time, update_by, update_time from ff_tenant_agent_invite_register + select id, + order_id, + agent_id, + invite_code, + account, + password, + balance, + register_time, + register_ip, + register_ip_city, + status, + create_by, + create_time, + update_by, + update_time + from ff_tenant_agent_invite_register - - - and agent_id = #{agentId} - and invite_code = #{inviteCode} - and account = #{account} - and password = #{password} - and balance = #{balance} - and register_time = #{registerTime} - and register_ip = #{registerIp} - and register_ip_city = #{registerIpCity} - and status = #{status} - and order_id = #{orderId} + + and agent_id = #{agentId} + and invite_code = #{inviteCode} + and account = #{account} + and password = #{password} + and balance = #{balance} + and register_time = #{registerTime} + and register_ip = #{registerIp} + and register_ip_city = #{registerIpCity} + and status = #{status} + and order_id = #{orderId} - - + + + + and tenant_key = #{tenantKey} + and currency_code = #{currencyCode} + and member_id = #{memberId} + and game_code = #{gameCode} + and game_id = #{gameId} + and game_type = #{gameType} + and platform_code = #{platformCode} + and game_name like concat('%', #{gameName}, '%') + and game_status = #{gameStatus} + and game_status_type = #{gameStatusType} + and game_currency_code = + #{gameCurrencyCode} + + and account like concat('%', #{account}, '%') + and wagers_id = #{wagersId} + and wagers_time = #{wagersTime} + and bet_amount = #{betAmount} + and payoff_time = #{payoffTime} + and payoff_amount = #{payoffAmount} + and settlement_time = #{settlementTime} + and turnover = #{turnover} + and order_no = #{orderNo} + and settlement_status = #{settlementStatus} + + AND wagers_time >= #{params.beginTime} + + + AND wagers_time <= #{params.endTime} + + + + AND create_time >= #{params.beginTime} + + + AND create_time <= #{params.endTime} + + + + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/game/GameBizMapper.xml b/ff-game/src/main/resources/mapper/game/GameBizMapper.xml new file mode 100644 index 0000000..3b61850 --- /dev/null +++ b/ff-game/src/main/resources/mapper/game/GameBizMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select * from ff_game + + + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/game/GameExchangeMoneyBizMapper.xml b/ff-game/src/main/resources/mapper/game/GameExchangeMoneyBizMapper.xml new file mode 100644 index 0000000..d1bee84 --- /dev/null +++ b/ff-game/src/main/resources/mapper/game/GameExchangeMoneyBizMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml b/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml index 306cb37..ad3cd7e 100644 --- a/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml +++ b/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml @@ -27,33 +27,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_key, @@ -133,88 +106,6 @@ - - @@ -48,40 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - select - g.game_id, - g.game_name, - g.freespin, - g.demo_status, - g.ingress, - g.platform_type, - g.platform_code, - g.name_info - from ff_game g - where g.stop_status=1 - - - - - - - - - - and tenant_key = #{tenantKey} - and currency_code = #{currencyCode} - and member_id = #{memberId} - and game_code = #{gameCode} - and game_id = #{gameId} - and game_type = #{gameType} - and platform_code = #{platformCode} - and game_name like concat('%', #{gameName}, '%') - and game_status = #{gameStatus} - and game_status_type = #{gameStatusType} - and game_currency_code = #{gameCurrencyCode} - and account like concat('%', #{account}, '%') - and wagers_id = #{wagersId} - and wagers_time = #{wagersTime} - and bet_amount = #{betAmount} - and payoff_time = #{payoffTime} - and payoff_amount = #{payoffAmount} - and settlement_time = #{settlementTime} - and turnover = #{turnover} - and order_no = #{orderNo} - and settlement_status = #{settlementStatus} - - AND wagers_time >= #{params.beginTime} - - - AND wagers_time <= #{params.endTime} - - - AND create_time >= #{params.beginTime} - - - AND create_time <= #{params.endTime} - - - - - - - - AND job_name like concat('%', #{jobName}, '%') - - - AND job_group = #{jobGroup} - - - AND status = #{status} - - - AND invoke_target like concat('%', #{invokeTarget}, '%') - - - and create_time >= #{params.beginTime} - - - - and create_time <= #{params.endTime} - - - - order by create_time desc - - - - - - - - delete from sys_job_log where job_log_id = #{jobLogId} - - - - delete from sys_job_log where job_log_id in - - #{jobLogId} - - - - - truncate table sys_job_log - - - - insert into sys_job_log( - job_log_id, - job_name, - job_group, - invoke_target, - job_message, - status, - exception_info, - create_time - )values( - #{jobLogId}, - #{jobName}, - #{jobGroup}, - #{invokeTarget}, - #{jobMessage}, - #{status}, - #{exceptionInfo}, - UNIX_TIMESTAMP() * 1000 - ) - - - diff --git a/ff-game/src/main/resources/mapper/quartz/SysJobMapper.xml b/ff-game/src/main/resources/mapper/quartz/SysJobMapper.xml deleted file mode 100644 index 948b5aa..0000000 --- a/ff-game/src/main/resources/mapper/quartz/SysJobMapper.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark - from sys_job - - - - - - - - - - delete from sys_job where job_id = #{jobId} - - - - delete from sys_job where job_id in - - #{jobId} - - - - - update sys_job - - job_name = #{jobName}, - job_group = #{jobGroup}, - invoke_target = #{invokeTarget}, - cron_expression = #{cronExpression}, - misfire_policy = #{misfirePolicy}, - concurrent = #{concurrent}, - status = #{status}, - remark = #{remark}, - update_by = #{updateBy}, - update_time = UNIX_TIMESTAMP() * 1000 - - where job_id = #{jobId} - - - - insert into sys_job( - job_id, - job_name, - job_group, - invoke_target, - cron_expression, - misfire_policy, - concurrent, - status, - remark, - create_by, - create_time - )values( - #{jobId}, - #{jobName}, - #{jobGroup}, - #{invokeTarget}, - #{cronExpression}, - #{misfirePolicy}, - #{concurrent}, - #{status}, - #{remark}, - #{createBy}, - UNIX_TIMESTAMP() * 1000 - ) - - - diff --git a/ff-base/src/main/resources/mapper/system/SysConfigMapper.xml b/ff-game/src/main/resources/mapper/system/SysConfigMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysConfigMapper.xml rename to ff-game/src/main/resources/mapper/system/SysConfigMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysDatasourceMapper.xml b/ff-game/src/main/resources/mapper/system/SysDatasourceMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysDatasourceMapper.xml rename to ff-game/src/main/resources/mapper/system/SysDatasourceMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysDeptMapper.xml b/ff-game/src/main/resources/mapper/system/SysDeptMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysDeptMapper.xml rename to ff-game/src/main/resources/mapper/system/SysDeptMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysDictDataMapper.xml b/ff-game/src/main/resources/mapper/system/SysDictDataMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysDictDataMapper.xml rename to ff-game/src/main/resources/mapper/system/SysDictDataMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ff-game/src/main/resources/mapper/system/SysDictTypeMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysDictTypeMapper.xml rename to ff-game/src/main/resources/mapper/system/SysDictTypeMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysLogininforMapper.xml b/ff-game/src/main/resources/mapper/system/SysLogininforMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysLogininforMapper.xml rename to ff-game/src/main/resources/mapper/system/SysLogininforMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysMenuMapper.xml b/ff-game/src/main/resources/mapper/system/SysMenuMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysMenuMapper.xml rename to ff-game/src/main/resources/mapper/system/SysMenuMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysOperLogMapper.xml b/ff-game/src/main/resources/mapper/system/SysOperLogMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysOperLogMapper.xml rename to ff-game/src/main/resources/mapper/system/SysOperLogMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysPostMapper.xml b/ff-game/src/main/resources/mapper/system/SysPostMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysPostMapper.xml rename to ff-game/src/main/resources/mapper/system/SysPostMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ff-game/src/main/resources/mapper/system/SysRoleDeptMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysRoleDeptMapper.xml rename to ff-game/src/main/resources/mapper/system/SysRoleDeptMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysRoleMapper.xml b/ff-game/src/main/resources/mapper/system/SysRoleMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysRoleMapper.xml rename to ff-game/src/main/resources/mapper/system/SysRoleMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ff-game/src/main/resources/mapper/system/SysRoleMenuMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysRoleMenuMapper.xml rename to ff-game/src/main/resources/mapper/system/SysRoleMenuMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysUserMapper.xml b/ff-game/src/main/resources/mapper/system/SysUserMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysUserMapper.xml rename to ff-game/src/main/resources/mapper/system/SysUserMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysUserPostMapper.xml b/ff-game/src/main/resources/mapper/system/SysUserPostMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysUserPostMapper.xml rename to ff-game/src/main/resources/mapper/system/SysUserPostMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ff-game/src/main/resources/mapper/system/SysUserRoleMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/SysUserRoleMapper.xml rename to ff-game/src/main/resources/mapper/system/SysUserRoleMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml b/ff-game/src/main/resources/mapper/system/TenantAgentMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml rename to ff-game/src/main/resources/mapper/system/TenantAgentMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml b/ff-game/src/main/resources/mapper/system/TenantPlatformMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml rename to ff-game/src/main/resources/mapper/system/TenantPlatformMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/TenantSecretKeyMapper.xml b/ff-game/src/main/resources/mapper/system/TenantSecretKeyMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/TenantSecretKeyMapper.xml rename to ff-game/src/main/resources/mapper/system/TenantSecretKeyMapper.xml diff --git a/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml b/ff-game/src/main/resources/mapper/system/TenantWhiteMapper.xml similarity index 100% rename from ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml rename to ff-game/src/main/resources/mapper/system/TenantWhiteMapper.xml diff --git a/ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml b/ff-game/src/main/resources/mapper/tenant/IGameExchangeMoneyBiz.xml similarity index 99% rename from ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml rename to ff-game/src/main/resources/mapper/tenant/IGameExchangeMoneyBiz.xml index a20678d..780b8fd 100644 --- a/ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml +++ b/ff-game/src/main/resources/mapper/tenant/IGameExchangeMoneyBiz.xml @@ -2,7 +2,7 @@ - + diff --git a/ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml b/ff-game/src/main/resources/mapper/tenant/TenantAgentPlatformMapper.xml similarity index 98% rename from ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml rename to ff-game/src/main/resources/mapper/tenant/TenantAgentPlatformMapper.xml index 4e34c04..dc6abba 100644 --- a/ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml +++ b/ff-game/src/main/resources/mapper/tenant/TenantAgentPlatformMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml b/ff-game/src/main/resources/mapper/tenant/TenantGameQuotaMapper.xml similarity index 98% rename from ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml rename to ff-game/src/main/resources/mapper/tenant/TenantGameQuotaMapper.xml index d08a88a..79ff7cc 100644 --- a/ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml +++ b/ff-game/src/main/resources/mapper/tenant/TenantGameQuotaMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/ff-game/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml b/ff-game/src/main/resources/mapper/tenant/TenantQuotaExchangeMapper.xml similarity index 98% rename from ff-game/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml rename to ff-game/src/main/resources/mapper/tenant/TenantQuotaExchangeMapper.xml index 3c94702..8465cd8 100644 --- a/ff-game/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml +++ b/ff-game/src/main/resources/mapper/tenant/TenantQuotaExchangeMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/ff-gen/pom.xml b/ff-gen/pom.xml deleted file mode 100644 index a133957..0000000 --- a/ff-gen/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - 4.0.0 - - ff - com.ff - 0.0.1 - - - com.ff - ff-gen - 0.0.1 - ff-gen - ff-gen - - - - - - - org.apache.velocity - velocity-engine-core - - - - - com.ff - ff-base - - - - - com.alibaba - druid-spring-boot-starter - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/ff-gen/src/main/java/com/ff/gen/config/GenConfig.java b/ff-gen/src/main/java/com/ff/gen/config/GenConfig.java deleted file mode 100644 index 66e803d..0000000 --- a/ff-gen/src/main/java/com/ff/gen/config/GenConfig.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.ff.gen.config; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Component; - -/** - * 读取代码生成相关配置 - * - * @author ff - */ -@Component -@ConfigurationProperties(prefix = "gen") -@PropertySource(value = { "classpath:generator.yml" }) -public class GenConfig -{ - /** 作者 */ - public static String author; - - /** 生成包路径 */ - public static String packageName; - - /** 自动去除表前缀,默认是false */ - public static boolean autoRemovePre; - - /** 表前缀(类名不会包含表前缀) */ - public static String tablePrefix; - - public static String getAuthor() - { - return author; - } - - @Value("${author}") - public void setAuthor(String author) - { - GenConfig.author = author; - } - - public static String getPackageName() - { - return packageName; - } - - @Value("${packageName}") - public void setPackageName(String packageName) - { - GenConfig.packageName = packageName; - } - - public static boolean getAutoRemovePre() - { - return autoRemovePre; - } - - @Value("${autoRemovePre}") - public void setAutoRemovePre(boolean autoRemovePre) - { - GenConfig.autoRemovePre = autoRemovePre; - } - - public static String getTablePrefix() - { - return tablePrefix; - } - - @Value("${tablePrefix}") - public void setTablePrefix(String tablePrefix) - { - GenConfig.tablePrefix = tablePrefix; - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/controller/GenController.java b/ff-gen/src/main/java/com/ff/gen/controller/GenController.java deleted file mode 100644 index 2890eff..0000000 --- a/ff-gen/src/main/java/com/ff/gen/controller/GenController.java +++ /dev/null @@ -1,252 +0,0 @@ -package com.ff.gen.controller; - -import com.alibaba.druid.DbType; -import com.alibaba.druid.sql.SQLUtils; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement; -import com.ff.base.annotation.Log; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.core.page.TableDataInfo; -import com.ff.base.core.text.Convert; -import com.ff.base.enums.BusinessType; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.sql.SqlUtil; -import com.ff.gen.domain.GenTable; -import com.ff.gen.domain.GenTableColumn; -import com.ff.gen.service.IGenTableColumnService; -import com.ff.gen.service.IGenTableService; -import org.apache.commons.io.IOUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 代码生成 操作处理 - * - * @author ff - */ -@RestController -@RequestMapping("/tool/gen") -public class GenController extends BaseController -{ - @Autowired - private IGenTableService genTableService; - - @Autowired - private IGenTableColumnService genTableColumnService; - - /** - * 查询代码生成列表 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:list')") - @GetMapping("/list") - public TableDataInfo genList(GenTable genTable) - { - startPage(); - List list = genTableService.selectGenTableList(genTable); - return getDataTable(list); - } - - /** - * 修改代码生成业务 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:query')") - @GetMapping(value = "/{tableId}") - public AjaxResult getInfo(@PathVariable Long tableId) - { - GenTable table = genTableService.selectGenTableById(tableId); - List tables = genTableService.selectGenTableAll(); - List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); - Map map = new HashMap(); - map.put("info", table); - map.put("rows", list); - map.put("tables", tables); - return success(map); - } - - /** - * 查询数据库列表 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:list')") - @GetMapping("/db/list") - public TableDataInfo dataList(GenTable genTable) - { - startPage(); - List list = genTableService.selectDbTableList(genTable); - return getDataTable(list); - } - - /** - * 查询数据表字段列表 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:list')") - @GetMapping(value = "/column/{tableId}") - public TableDataInfo columnList(Long tableId) - { - TableDataInfo dataInfo = new TableDataInfo(); - List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); - dataInfo.setRows(list); - dataInfo.setTotal(list.size()); - return dataInfo; - } - - /** - * 导入表结构(保存) - */ - @PreAuthorize("@ss.hasPermi('tool:gen:import')") - @Log(title = "代码生成", businessType = BusinessType.IMPORT) - @PostMapping("/importTable") - public AjaxResult importTableSave(String tables) - { - String[] tableNames = Convert.toStrArray(tables); - // 查询表信息 - List tableList = genTableService.selectDbTableListByNames(tableNames); - genTableService.importGenTable(tableList, SecurityUtils.getUsername()); - return success(); - } - - /** - * 创建表结构(保存) - */ - @PreAuthorize("@ss.hasRole('admin')") - @Log(title = "创建表", businessType = BusinessType.OTHER) - @PostMapping("/createTable") - public AjaxResult createTableSave(String sql) - { - try - { - SqlUtil.filterKeyword(sql); - List sqlStatements = SQLUtils.parseStatements(sql, DbType.mysql); - List tableNames = new ArrayList<>(); - for (SQLStatement sqlStatement : sqlStatements) - { - if (sqlStatement instanceof MySqlCreateTableStatement) - { - MySqlCreateTableStatement createTableStatement = (MySqlCreateTableStatement) sqlStatement; - if (genTableService.createTable(createTableStatement.toString())) - { - String tableName = createTableStatement.getTableName().replaceAll("`", ""); - tableNames.add(tableName); - } - } - } - List tableList = genTableService.selectDbTableListByNames(tableNames.toArray(new String[tableNames.size()])); - String operName = SecurityUtils.getUsername(); - genTableService.importGenTable(tableList, operName); - return AjaxResult.success(); - } - catch (Exception e) - { - logger.error(e.getMessage(), e); - return AjaxResult.error("创建表结构异常"); - } - } - - /** - * 修改保存代码生成业务 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:edit')") - @Log(title = "代码生成", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult editSave(@Validated @RequestBody GenTable genTable) - { - genTableService.validateEdit(genTable); - genTableService.updateGenTable(genTable); - return success(); - } - - /** - * 删除代码生成 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:remove')") - @Log(title = "代码生成", businessType = BusinessType.DELETE) - @DeleteMapping("/{tableIds}") - public AjaxResult remove(@PathVariable Long[] tableIds) - { - genTableService.deleteGenTableByIds(tableIds); - return success(); - } - - /** - * 预览代码 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:preview')") - @GetMapping("/preview/{tableId}") - public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException - { - Map dataMap = genTableService.previewCode(tableId); - return success(dataMap); - } - - /** - * 生成代码(下载方式) - */ - @PreAuthorize("@ss.hasPermi('tool:gen:code')") - @Log(title = "代码生成", businessType = BusinessType.GENCODE) - @GetMapping("/download/{tableName}") - public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException - { - byte[] data = genTableService.downloadCode(tableName); - genCode(response, data); - } - - /** - * 生成代码(自定义路径) - */ - @PreAuthorize("@ss.hasPermi('tool:gen:code')") - @Log(title = "代码生成", businessType = BusinessType.GENCODE) - @GetMapping("/genCode/{tableName}") - public AjaxResult genCode(@PathVariable("tableName") String tableName) - { - genTableService.generatorCode(tableName); - return success(); - } - - /** - * 同步数据库 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:edit')") - @Log(title = "代码生成", businessType = BusinessType.UPDATE) - @GetMapping("/synchDb/{tableName}") - public AjaxResult synchDb(@PathVariable("tableName") String tableName) - { - genTableService.synchDb(tableName); - return success(); - } - - /** - * 批量生成代码 - */ - @PreAuthorize("@ss.hasPermi('tool:gen:code')") - @Log(title = "代码生成", businessType = BusinessType.GENCODE) - @GetMapping("/batchGenCode") - public void batchGenCode(HttpServletResponse response, String tables) throws IOException - { - String[] tableNames = Convert.toStrArray(tables); - byte[] data = genTableService.downloadCode(tableNames); - genCode(response, data); - } - - /** - * 生成zip文件 - */ - private void genCode(HttpServletResponse response, byte[] data) throws IOException - { - response.reset(); - response.addHeader("Access-Control-Allow-Origin", "*"); - response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; filename=\"ff.zip\""); - response.addHeader("Content-Length", "" + data.length); - response.setContentType("application/octet-stream; charset=UTF-8"); - IOUtils.write(data, response.getOutputStream()); - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/domain/GenTable.java b/ff-gen/src/main/java/com/ff/gen/domain/GenTable.java deleted file mode 100644 index b772826..0000000 --- a/ff-gen/src/main/java/com/ff/gen/domain/GenTable.java +++ /dev/null @@ -1,386 +0,0 @@ -package com.ff.gen.domain; - -import com.ff.base.constant.GenConstants; -import com.ff.base.core.domain.BaseEntity; -import com.ff.base.utils.StringUtils; -import org.apache.commons.lang3.ArrayUtils; - -import javax.validation.Valid; -import javax.validation.constraints.NotBlank; -import java.util.List; - -/** - * 业务表 gen_table - * - * @author ff - */ -public class GenTable extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 编号 */ - private Long tableId; - - /** 表名称 */ - @NotBlank(message = "表名称不能为空") - private String tableName; - - /** 表描述 */ - @NotBlank(message = "表描述不能为空") - private String tableComment; - - /** 关联父表的表名 */ - private String subTableName; - - /** 本表关联父表的外键名 */ - private String subTableFkName; - - /** 实体类名称(首字母大写) */ - @NotBlank(message = "实体类名称不能为空") - private String className; - - /** 使用的模板(crud单表操作 tree树表操作 sub主子表操作) */ - private String tplCategory; - - /** 前端类型(element-ui模版 element-plus模版) */ - private String tplWebType; - - /** 生成包路径 */ - @NotBlank(message = "生成包路径不能为空") - private String packageName; - - /** 生成模块名 */ - @NotBlank(message = "生成模块名不能为空") - private String moduleName; - - /** 生成业务名 */ - @NotBlank(message = "生成业务名不能为空") - private String businessName; - - /** 生成功能名 */ - @NotBlank(message = "生成功能名不能为空") - private String functionName; - - /** 生成作者 */ - @NotBlank(message = "作者不能为空") - private String functionAuthor; - - /** 生成代码方式(0zip压缩包 1自定义路径) */ - private String genType; - - /** 生成路径(不填默认项目路径) */ - private String genPath; - - /** 主键信息 */ - private GenTableColumn pkColumn; - - /** 子表信息 */ - private GenTable subTable; - - /** 表列信息 */ - @Valid - private List columns; - - /** 其它生成选项 */ - private String options; - - /** 树编码字段 */ - private String treeCode; - - /** 树父编码字段 */ - private String treeParentCode; - - /** 树名称字段 */ - private String treeName; - - /** 上级菜单ID字段 */ - private String parentMenuId; - - /** 上级菜单名称字段 */ - private String parentMenuName; - - public Long getTableId() - { - return tableId; - } - - public void setTableId(Long tableId) - { - this.tableId = tableId; - } - - public String getTableName() - { - return tableName; - } - - public void setTableName(String tableName) - { - this.tableName = tableName; - } - - public String getTableComment() - { - return tableComment; - } - - public void setTableComment(String tableComment) - { - this.tableComment = tableComment; - } - - public String getSubTableName() - { - return subTableName; - } - - public void setSubTableName(String subTableName) - { - this.subTableName = subTableName; - } - - public String getSubTableFkName() - { - return subTableFkName; - } - - public void setSubTableFkName(String subTableFkName) - { - this.subTableFkName = subTableFkName; - } - - public String getClassName() - { - return className; - } - - public void setClassName(String className) - { - this.className = className; - } - - public String getTplCategory() - { - return tplCategory; - } - - public void setTplCategory(String tplCategory) - { - this.tplCategory = tplCategory; - } - - public String getTplWebType() - { - return tplWebType; - } - - public void setTplWebType(String tplWebType) - { - this.tplWebType = tplWebType; - } - - public String getPackageName() - { - return packageName; - } - - public void setPackageName(String packageName) - { - this.packageName = packageName; - } - - public String getModuleName() - { - return moduleName; - } - - public void setModuleName(String moduleName) - { - this.moduleName = moduleName; - } - - public String getBusinessName() - { - return businessName; - } - - public void setBusinessName(String businessName) - { - this.businessName = businessName; - } - - public String getFunctionName() - { - return functionName; - } - - public void setFunctionName(String functionName) - { - this.functionName = functionName; - } - - public String getFunctionAuthor() - { - return functionAuthor; - } - - public void setFunctionAuthor(String functionAuthor) - { - this.functionAuthor = functionAuthor; - } - - public String getGenType() - { - return genType; - } - - public void setGenType(String genType) - { - this.genType = genType; - } - - public String getGenPath() - { - return genPath; - } - - public void setGenPath(String genPath) - { - this.genPath = genPath; - } - - public GenTableColumn getPkColumn() - { - return pkColumn; - } - - public void setPkColumn(GenTableColumn pkColumn) - { - this.pkColumn = pkColumn; - } - - public GenTable getSubTable() - { - return subTable; - } - - public void setSubTable(GenTable subTable) - { - this.subTable = subTable; - } - - public List getColumns() - { - return columns; - } - - public void setColumns(List columns) - { - this.columns = columns; - } - - public String getOptions() - { - return options; - } - - public void setOptions(String options) - { - this.options = options; - } - - public String getTreeCode() - { - return treeCode; - } - - public void setTreeCode(String treeCode) - { - this.treeCode = treeCode; - } - - public String getTreeParentCode() - { - return treeParentCode; - } - - public void setTreeParentCode(String treeParentCode) - { - this.treeParentCode = treeParentCode; - } - - public String getTreeName() - { - return treeName; - } - - public void setTreeName(String treeName) - { - this.treeName = treeName; - } - - public String getParentMenuId() - { - return parentMenuId; - } - - public void setParentMenuId(String parentMenuId) - { - this.parentMenuId = parentMenuId; - } - - public String getParentMenuName() - { - return parentMenuName; - } - - public void setParentMenuName(String parentMenuName) - { - this.parentMenuName = parentMenuName; - } - - public boolean isSub() - { - return isSub(this.tplCategory); - } - - public static boolean isSub(String tplCategory) - { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); - } - - public boolean isTree() - { - return isTree(this.tplCategory); - } - - public static boolean isTree(String tplCategory) - { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); - } - - public boolean isCrud() - { - return isCrud(this.tplCategory); - } - - public static boolean isCrud(String tplCategory) - { - return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); - } - - public boolean isSuperColumn(String javaField) - { - return isSuperColumn(this.tplCategory, javaField); - } - - public static boolean isSuperColumn(String tplCategory, String javaField) - { - if (isTree(tplCategory)) - { - return StringUtils.equalsAnyIgnoreCase(javaField, - ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); - } - return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/domain/GenTableColumn.java b/ff-gen/src/main/java/com/ff/gen/domain/GenTableColumn.java deleted file mode 100644 index 0f87eb9..0000000 --- a/ff-gen/src/main/java/com/ff/gen/domain/GenTableColumn.java +++ /dev/null @@ -1,374 +0,0 @@ -package com.ff.gen.domain; - -import com.ff.base.core.domain.BaseEntity; -import com.ff.base.utils.StringUtils; - -import javax.validation.constraints.NotBlank; - -/** - * 代码生成业务字段表 gen_table_column - * - * @author ff - */ -public class GenTableColumn extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 编号 */ - private Long columnId; - - /** 归属表编号 */ - private Long tableId; - - /** 列名称 */ - private String columnName; - - /** 列描述 */ - private String columnComment; - - /** 列类型 */ - private String columnType; - - /** JAVA类型 */ - private String javaType; - - /** JAVA字段名 */ - @NotBlank(message = "Java属性不能为空") - private String javaField; - - /** 是否主键(1是) */ - private String isPk; - - /** 是否自增(1是) */ - private String isIncrement; - - /** 是否必填(1是) */ - private String isRequired; - - /** 是否为插入字段(1是) */ - private String isInsert; - - /** 是否编辑字段(1是) */ - private String isEdit; - - /** 是否列表字段(1是) */ - private String isList; - - /** 是否查询字段(1是) */ - private String isQuery; - - /** 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) */ - private String queryType; - - /** 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、image图片上传控件、upload文件上传控件、editor富文本控件) */ - private String htmlType; - - /** 字典类型 */ - private String dictType; - - /** 排序 */ - private Integer sort; - - public void setColumnId(Long columnId) - { - this.columnId = columnId; - } - - public Long getColumnId() - { - return columnId; - } - - public void setTableId(Long tableId) - { - this.tableId = tableId; - } - - public Long getTableId() - { - return tableId; - } - - public void setColumnName(String columnName) - { - this.columnName = columnName; - } - - public String getColumnName() - { - return columnName; - } - - public void setColumnComment(String columnComment) - { - this.columnComment = columnComment; - } - - public String getColumnComment() - { - return columnComment; - } - - public void setColumnType(String columnType) - { - this.columnType = columnType; - } - - public String getColumnType() - { - return columnType; - } - - public void setJavaType(String javaType) - { - this.javaType = javaType; - } - - public String getJavaType() - { - return javaType; - } - - public void setJavaField(String javaField) - { - this.javaField = javaField; - } - - public String getJavaField() - { - return javaField; - } - - public String getCapJavaField() - { - return StringUtils.capitalize(javaField); - } - - public void setIsPk(String isPk) - { - this.isPk = isPk; - } - - public String getIsPk() - { - return isPk; - } - - public boolean isPk() - { - return isPk(this.isPk); - } - - public boolean isPk(String isPk) - { - return isPk != null && StringUtils.equals("1", isPk); - } - - public String getIsIncrement() - { - return isIncrement; - } - - public void setIsIncrement(String isIncrement) - { - this.isIncrement = isIncrement; - } - - public boolean isIncrement() - { - return isIncrement(this.isIncrement); - } - - public boolean isIncrement(String isIncrement) - { - return isIncrement != null && StringUtils.equals("1", isIncrement); - } - - public void setIsRequired(String isRequired) - { - this.isRequired = isRequired; - } - - public String getIsRequired() - { - return isRequired; - } - - public boolean isRequired() - { - return isRequired(this.isRequired); - } - - public boolean isRequired(String isRequired) - { - return isRequired != null && StringUtils.equals("1", isRequired); - } - - public void setIsInsert(String isInsert) - { - this.isInsert = isInsert; - } - - public String getIsInsert() - { - return isInsert; - } - - public boolean isInsert() - { - return isInsert(this.isInsert); - } - - public boolean isInsert(String isInsert) - { - return isInsert != null && StringUtils.equals("1", isInsert); - } - - public void setIsEdit(String isEdit) - { - this.isEdit = isEdit; - } - - public String getIsEdit() - { - return isEdit; - } - - public boolean isEdit() - { - return isInsert(this.isEdit); - } - - public boolean isEdit(String isEdit) - { - return isEdit != null && StringUtils.equals("1", isEdit); - } - - public void setIsList(String isList) - { - this.isList = isList; - } - - public String getIsList() - { - return isList; - } - - public boolean isList() - { - return isList(this.isList); - } - - public boolean isList(String isList) - { - return isList != null && StringUtils.equals("1", isList); - } - - public void setIsQuery(String isQuery) - { - this.isQuery = isQuery; - } - - public String getIsQuery() - { - return isQuery; - } - - public boolean isQuery() - { - return isQuery(this.isQuery); - } - - public boolean isQuery(String isQuery) - { - return isQuery != null && StringUtils.equals("1", isQuery); - } - - public void setQueryType(String queryType) - { - this.queryType = queryType; - } - - public String getQueryType() - { - return queryType; - } - - public String getHtmlType() - { - return htmlType; - } - - public void setHtmlType(String htmlType) - { - this.htmlType = htmlType; - } - - public void setDictType(String dictType) - { - this.dictType = dictType; - } - - public String getDictType() - { - return dictType; - } - - public void setSort(Integer sort) - { - this.sort = sort; - } - - public Integer getSort() - { - return sort; - } - - public boolean isSuperColumn() - { - return isSuperColumn(this.javaField); - } - - public static boolean isSuperColumn(String javaField) - { - return StringUtils.equalsAnyIgnoreCase(javaField, - // BaseEntity - "createBy", "createTime", "updateBy", "updateTime", "remark", - // TreeEntity - "parentName", "parentId", "orderNum", "ancestors"); - } - - public boolean isUsableColumn() - { - return isUsableColumn(javaField); - } - - public static boolean isUsableColumn(String javaField) - { - // isSuperColumn()中的名单用于避免生成多余Domain属性,若某些属性在生成页面时需要用到不能忽略,则放在此处白名单 - return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); - } - - public String readConverterExp() - { - String remarks = StringUtils.substringBetween(this.columnComment, "(", ")"); - StringBuffer sb = new StringBuffer(); - if (StringUtils.isNotEmpty(remarks)) - { - for (String value : remarks.split(" ")) - { - if (StringUtils.isNotEmpty(value)) - { - Object startStr = value.subSequence(0, 1); - String endStr = value.substring(1); - sb.append("").append(startStr).append("=").append(endStr).append(","); - } - } - return sb.deleteCharAt(sb.length() - 1).toString(); - } - else - { - return this.columnComment; - } - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/mapper/GenTableColumnMapper.java b/ff-gen/src/main/java/com/ff/gen/mapper/GenTableColumnMapper.java deleted file mode 100644 index 0bab27a..0000000 --- a/ff-gen/src/main/java/com/ff/gen/mapper/GenTableColumnMapper.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.ff.gen.mapper; - -import com.ff.gen.domain.GenTableColumn; - -import java.util.List; - -/** - * 业务字段 数据层 - * - * @author ff - */ -public interface GenTableColumnMapper -{ - /** - * 根据表名称查询列信息 - * - * @param tableName 表名称 - * @return 列信息 - */ - public List selectDbTableColumnsByName(String tableName); - - /** - * 查询业务字段列表 - * - * @param tableId 业务字段编号 - * @return 业务字段集合 - */ - public List selectGenTableColumnListByTableId(Long tableId); - - /** - * 新增业务字段 - * - * @param genTableColumn 业务字段信息 - * @return 结果 - */ - public int insertGenTableColumn(GenTableColumn genTableColumn); - - /** - * 修改业务字段 - * - * @param genTableColumn 业务字段信息 - * @return 结果 - */ - public int updateGenTableColumn(GenTableColumn genTableColumn); - - /** - * 删除业务字段 - * - * @param genTableColumns 列数据 - * @return 结果 - */ - public int deleteGenTableColumns(List genTableColumns); - - /** - * 批量删除业务字段 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - public int deleteGenTableColumnByIds(Long[] ids); -} diff --git a/ff-gen/src/main/java/com/ff/gen/mapper/GenTableMapper.java b/ff-gen/src/main/java/com/ff/gen/mapper/GenTableMapper.java deleted file mode 100644 index 0f84664..0000000 --- a/ff-gen/src/main/java/com/ff/gen/mapper/GenTableMapper.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.ff.gen.mapper; - -import com.ff.gen.domain.GenTable; - -import java.util.List; - -/** - * 业务 数据层 - * - * @author ff - */ -public interface GenTableMapper -{ - /** - * 查询业务列表 - * - * @param genTable 业务信息 - * @return 业务集合 - */ - public List selectGenTableList(GenTable genTable); - - /** - * 查询据库列表 - * - * @param genTable 业务信息 - * @return 数据库表集合 - */ - public List selectDbTableList(GenTable genTable); - - /** - * 查询据库列表 - * - * @param tableNames 表名称组 - * @return 数据库表集合 - */ - public List selectDbTableListByNames(String[] tableNames); - - /** - * 查询所有表信息 - * - * @return 表信息集合 - */ - public List selectGenTableAll(); - - /** - * 查询表ID业务信息 - * - * @param id 业务ID - * @return 业务信息 - */ - public GenTable selectGenTableById(Long id); - - /** - * 查询表名称业务信息 - * - * @param tableName 表名称 - * @return 业务信息 - */ - public GenTable selectGenTableByName(String tableName); - - /** - * 新增业务 - * - * @param genTable 业务信息 - * @return 结果 - */ - public int insertGenTable(GenTable genTable); - - /** - * 修改业务 - * - * @param genTable 业务信息 - * @return 结果 - */ - public int updateGenTable(GenTable genTable); - - /** - * 批量删除业务 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - public int deleteGenTableByIds(Long[] ids); - - /** - * 创建表 - * - * @param sql 表结构 - * @return 结果 - */ - public int createTable(String sql); -} diff --git a/ff-gen/src/main/java/com/ff/gen/service/GenTableColumnServiceImpl.java b/ff-gen/src/main/java/com/ff/gen/service/GenTableColumnServiceImpl.java deleted file mode 100644 index d0f4961..0000000 --- a/ff-gen/src/main/java/com/ff/gen/service/GenTableColumnServiceImpl.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.ff.gen.service; - -import com.ff.base.core.text.Convert; -import com.ff.gen.domain.GenTableColumn; -import com.ff.gen.mapper.GenTableColumnMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 业务字段 服务层实现 - * - * @author ff - */ -@Service -public class GenTableColumnServiceImpl implements IGenTableColumnService -{ - @Autowired - private GenTableColumnMapper genTableColumnMapper; - - /** - * 查询业务字段列表 - * - * @param tableId 业务字段编号 - * @return 业务字段集合 - */ - @Override - public List selectGenTableColumnListByTableId(Long tableId) - { - return genTableColumnMapper.selectGenTableColumnListByTableId(tableId); - } - - /** - * 新增业务字段 - * - * @param genTableColumn 业务字段信息 - * @return 结果 - */ - @Override - public int insertGenTableColumn(GenTableColumn genTableColumn) - { - return genTableColumnMapper.insertGenTableColumn(genTableColumn); - } - - /** - * 修改业务字段 - * - * @param genTableColumn 业务字段信息 - * @return 结果 - */ - @Override - public int updateGenTableColumn(GenTableColumn genTableColumn) - { - return genTableColumnMapper.updateGenTableColumn(genTableColumn); - } - - /** - * 删除业务字段对象 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - @Override - public int deleteGenTableColumnByIds(String ids) - { - return genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids)); - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java b/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java deleted file mode 100644 index b96fa01..0000000 --- a/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java +++ /dev/null @@ -1,536 +0,0 @@ -package com.ff.gen.service; - -import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.ff.base.constant.Constants; -import com.ff.base.constant.GenConstants; -import com.ff.base.core.text.CharsetKit; -import com.ff.base.exception.ServiceException; -import com.ff.base.utils.StringUtils; -import com.ff.gen.domain.GenTable; -import com.ff.gen.domain.GenTableColumn; -import com.ff.gen.mapper.GenTableColumnMapper; -import com.ff.gen.mapper.GenTableMapper; -import com.ff.gen.util.GenUtils; -import com.ff.gen.util.VelocityInitializer; -import com.ff.gen.util.VelocityUtils; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.Velocity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -/** - * 业务 服务层实现 - * - * @author ff - */ -@Service -public class GenTableServiceImpl implements IGenTableService -{ - private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class); - - @Autowired - private GenTableMapper genTableMapper; - - @Autowired - private GenTableColumnMapper genTableColumnMapper; - - /** - * 查询业务信息 - * - * @param id 业务ID - * @return 业务信息 - */ - @Override - public GenTable selectGenTableById(Long id) - { - GenTable genTable = genTableMapper.selectGenTableById(id); - setTableFromOptions(genTable); - return genTable; - } - - /** - * 查询业务列表 - * - * @param genTable 业务信息 - * @return 业务集合 - */ - @Override - public List selectGenTableList(GenTable genTable) - { - return genTableMapper.selectGenTableList(genTable); - } - - /** - * 查询据库列表 - * - * @param genTable 业务信息 - * @return 数据库表集合 - */ - @Override - public List selectDbTableList(GenTable genTable) - { - return genTableMapper.selectDbTableList(genTable); - } - - /** - * 查询据库列表 - * - * @param tableNames 表名称组 - * @return 数据库表集合 - */ - @Override - public List selectDbTableListByNames(String[] tableNames) - { - return genTableMapper.selectDbTableListByNames(tableNames); - } - - /** - * 查询所有表信息 - * - * @return 表信息集合 - */ - @Override - public List selectGenTableAll() - { - return genTableMapper.selectGenTableAll(); - } - - /** - * 修改业务 - * - * @param genTable 业务信息 - * @return 结果 - */ - @Override - @Transactional - public void updateGenTable(GenTable genTable) - { - String options = JSON.toJSONString(genTable.getParams()); - genTable.setOptions(options); - int row = genTableMapper.updateGenTable(genTable); - if (row > 0) - { - for (GenTableColumn cenTableColumn : genTable.getColumns()) - { - genTableColumnMapper.updateGenTableColumn(cenTableColumn); - } - } - } - - /** - * 删除业务对象 - * - * @param tableIds 需要删除的数据ID - * @return 结果 - */ - @Override - @Transactional - public void deleteGenTableByIds(Long[] tableIds) - { - genTableMapper.deleteGenTableByIds(tableIds); - genTableColumnMapper.deleteGenTableColumnByIds(tableIds); - } - - /** - * 创建表 - * - * @param sql 创建表语句 - * @return 结果 - */ - @Override - public boolean createTable(String sql) - { - return genTableMapper.createTable(sql) == 0; - } - - /** - * 导入表结构 - * - * @param tableList 导入表列表 - */ - @Override - @Transactional - public void importGenTable(List tableList, String operName) - { - try - { - for (GenTable table : tableList) - { - String tableName = table.getTableName(); - GenUtils.initTable(table, operName); - table.setTableId(IdUtil.getSnowflakeNextId()); - int row = genTableMapper.insertGenTable(table); - if (row > 0) - { - // 保存列信息 - List genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); - for (GenTableColumn column : genTableColumns) - { - GenUtils.initColumnField(column, table); - column.setColumnId(IdUtil.getSnowflakeNextId()); - genTableColumnMapper.insertGenTableColumn(column); - } - } - } - } - catch (Exception e) - { - throw new ServiceException("导入失败:" + e.getMessage()); - } - } - - /** - * 预览代码 - * - * @param tableId 表编号 - * @return 预览数据列表 - */ - @Override - public Map previewCode(Long tableId) - { - Map dataMap = new LinkedHashMap<>(); - // 查询表信息 - GenTable table = genTableMapper.selectGenTableById(tableId); - // 设置主子表信息 - setSubTable(table); - // 设置主键列信息 - setPkColumn(table); - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 获取模板列表 - List templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); - for (String template : templates) - { - // 渲染模板 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, Constants.UTF8); - tpl.merge(context, sw); - dataMap.put(template, sw.toString()); - } - return dataMap; - } - - /** - * 生成代码(下载方式) - * - * @param tableName 表名称 - * @return 数据 - */ - @Override - public byte[] downloadCode(String tableName) - { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - generatorCode(tableName, zip); - IOUtils.closeQuietly(zip); - return outputStream.toByteArray(); - } - - /** - * 生成代码(自定义路径) - * - * @param tableName 表名称 - */ - @Override - public void generatorCode(String tableName) - { - // 查询表信息 - GenTable table = genTableMapper.selectGenTableByName(tableName); - // 设置主子表信息 - setSubTable(table); - // 设置主键列信息 - setPkColumn(table); - - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 获取模板列表 - List templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); - for (String template : templates) - { - if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) - { - // 渲染模板 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, Constants.UTF8); - tpl.merge(context, sw); - try - { - String path = getGenPath(table, template); - FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8); - } - catch (IOException e) - { - throw new ServiceException("渲染模板失败,表名:" + table.getTableName()); - } - } - } - } - - /** - * 同步数据库 - * - * @param tableName 表名称 - */ - @Override - @Transactional - public void synchDb(String tableName) - { - GenTable table = genTableMapper.selectGenTableByName(tableName); - List tableColumns = table.getColumns(); - Map tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); - - List dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); - if (StringUtils.isEmpty(dbTableColumns)) - { - throw new ServiceException("同步数据失败,原表结构不存在"); - } - List dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); - - dbTableColumns.forEach(column -> { - GenUtils.initColumnField(column, table); - if (tableColumnMap.containsKey(column.getColumnName())) - { - GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName()); - column.setColumnId(prevColumn.getColumnId()); - if (column.isList()) - { - // 如果是列表,继续保留查询方式/字典类型选项 - column.setDictType(prevColumn.getDictType()); - column.setQueryType(prevColumn.getQueryType()); - } - if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) && !column.isPk() - && (column.isInsert() || column.isEdit()) - && ((column.isUsableColumn()) || (!column.isSuperColumn()))) - { - // 如果是(新增/修改&非主键/非忽略及父属性),继续保留必填/显示类型选项 - column.setIsRequired(prevColumn.getIsRequired()); - column.setHtmlType(prevColumn.getHtmlType()); - } - genTableColumnMapper.updateGenTableColumn(column); - } - else - { - column.setColumnId(IdUtil.getSnowflakeNextId()); - genTableColumnMapper.insertGenTableColumn(column); - } - }); - - List delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); - if (StringUtils.isNotEmpty(delColumns)) - { - genTableColumnMapper.deleteGenTableColumns(delColumns); - } - } - - /** - * 批量生成代码(下载方式) - * - * @param tableNames 表数组 - * @return 数据 - */ - @Override - public byte[] downloadCode(String[] tableNames) - { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - for (String tableName : tableNames) - { - generatorCode(tableName, zip); - } - IOUtils.closeQuietly(zip); - return outputStream.toByteArray(); - } - - /** - * 查询表信息并生成代码 - */ - private void generatorCode(String tableName, ZipOutputStream zip) - { - // 查询表信息 - GenTable table = genTableMapper.selectGenTableByName(tableName); - // 设置主子表信息 - setSubTable(table); - // 设置主键列信息 - setPkColumn(table); - - VelocityInitializer.initVelocity(); - - VelocityContext context = VelocityUtils.prepareContext(table); - - // 获取模板列表 - List templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType()); - for (String template : templates) - { - // 渲染模板 - StringWriter sw = new StringWriter(); - Template tpl = Velocity.getTemplate(template, Constants.UTF8); - tpl.merge(context, sw); - try - { - // 添加到zip - zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); - IOUtils.write(sw.toString(), zip, Constants.UTF8); - IOUtils.closeQuietly(sw); - zip.flush(); - zip.closeEntry(); - } - catch (IOException e) - { - log.error("渲染模板失败,表名:" + table.getTableName(), e); - } - } - } - - /** - * 修改保存参数校验 - * - * @param genTable 业务信息 - */ - @Override - public void validateEdit(GenTable genTable) - { - if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) - { - String options = JSON.toJSONString(genTable.getParams()); - JSONObject paramsObj = JSON.parseObject(options); - if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) - { - throw new ServiceException("树编码字段不能为空"); - } - else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) - { - throw new ServiceException("树父编码字段不能为空"); - } - else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) - { - throw new ServiceException("树名称字段不能为空"); - } - else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) - { - if (StringUtils.isEmpty(genTable.getSubTableName())) - { - throw new ServiceException("关联子表的表名不能为空"); - } - else if (StringUtils.isEmpty(genTable.getSubTableFkName())) - { - throw new ServiceException("子表关联的外键名不能为空"); - } - } - } - } - - /** - * 设置主键列信息 - * - * @param table 业务表信息 - */ - public void setPkColumn(GenTable table) - { - for (GenTableColumn column : table.getColumns()) - { - if (column.isPk()) - { - table.setPkColumn(column); - break; - } - } - if (StringUtils.isNull(table.getPkColumn())) - { - table.setPkColumn(table.getColumns().get(0)); - } - if (GenConstants.TPL_SUB.equals(table.getTplCategory())) - { - for (GenTableColumn column : table.getSubTable().getColumns()) - { - if (column.isPk()) - { - table.getSubTable().setPkColumn(column); - break; - } - } - if (StringUtils.isNull(table.getSubTable().getPkColumn())) - { - table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); - } - } - } - - /** - * 设置主子表信息 - * - * @param table 业务表信息 - */ - public void setSubTable(GenTable table) - { - String subTableName = table.getSubTableName(); - if (StringUtils.isNotEmpty(subTableName)) - { - table.setSubTable(genTableMapper.selectGenTableByName(subTableName)); - } - } - - /** - * 设置代码生成其他选项值 - * - * @param genTable 设置后的生成对象 - */ - public void setTableFromOptions(GenTable genTable) - { - JSONObject paramsObj = JSON.parseObject(genTable.getOptions()); - if (StringUtils.isNotNull(paramsObj)) - { - String treeCode = paramsObj.getString(GenConstants.TREE_CODE); - String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); - String treeName = paramsObj.getString(GenConstants.TREE_NAME); - String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID); - String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); - - genTable.setTreeCode(treeCode); - genTable.setTreeParentCode(treeParentCode); - genTable.setTreeName(treeName); - genTable.setParentMenuId(parentMenuId); - genTable.setParentMenuName(parentMenuName); - } - } - - /** - * 获取代码生成地址 - * - * @param table 业务表信息 - * @param template 模板文件路径 - * @return 生成地址 - */ - public static String getGenPath(GenTable table, String template) - { - String genPath = table.getGenPath(); - if (StringUtils.equals(genPath, "/")) - { - return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table); - } - return genPath + File.separator + VelocityUtils.getFileName(template, table); - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/service/IGenTableColumnService.java b/ff-gen/src/main/java/com/ff/gen/service/IGenTableColumnService.java deleted file mode 100644 index a94df23..0000000 --- a/ff-gen/src/main/java/com/ff/gen/service/IGenTableColumnService.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.ff.gen.service; - -import com.ff.gen.domain.GenTableColumn; - -import java.util.List; - -/** - * 业务字段 服务层 - * - * @author ff - */ -public interface IGenTableColumnService -{ - /** - * 查询业务字段列表 - * - * @param tableId 业务字段编号 - * @return 业务字段集合 - */ - public List selectGenTableColumnListByTableId(Long tableId); - - /** - * 新增业务字段 - * - * @param genTableColumn 业务字段信息 - * @return 结果 - */ - public int insertGenTableColumn(GenTableColumn genTableColumn); - - /** - * 修改业务字段 - * - * @param genTableColumn 业务字段信息 - * @return 结果 - */ - public int updateGenTableColumn(GenTableColumn genTableColumn); - - /** - * 删除业务字段信息 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - public int deleteGenTableColumnByIds(String ids); -} diff --git a/ff-gen/src/main/java/com/ff/gen/service/IGenTableService.java b/ff-gen/src/main/java/com/ff/gen/service/IGenTableService.java deleted file mode 100644 index 5e078bb..0000000 --- a/ff-gen/src/main/java/com/ff/gen/service/IGenTableService.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.ff.gen.service; - -import com.ff.gen.domain.GenTable; - -import java.util.List; -import java.util.Map; - -/** - * 业务 服务层 - * - * @author ff - */ -public interface IGenTableService -{ - /** - * 查询业务列表 - * - * @param genTable 业务信息 - * @return 业务集合 - */ - public List selectGenTableList(GenTable genTable); - - /** - * 查询据库列表 - * - * @param genTable 业务信息 - * @return 数据库表集合 - */ - public List selectDbTableList(GenTable genTable); - - /** - * 查询据库列表 - * - * @param tableNames 表名称组 - * @return 数据库表集合 - */ - public List selectDbTableListByNames(String[] tableNames); - - /** - * 查询所有表信息 - * - * @return 表信息集合 - */ - public List selectGenTableAll(); - - /** - * 查询业务信息 - * - * @param id 业务ID - * @return 业务信息 - */ - public GenTable selectGenTableById(Long id); - - /** - * 修改业务 - * - * @param genTable 业务信息 - * @return 结果 - */ - public void updateGenTable(GenTable genTable); - - /** - * 删除业务信息 - * - * @param tableIds 需要删除的表数据ID - * @return 结果 - */ - public void deleteGenTableByIds(Long[] tableIds); - - /** - * 创建表 - * - * @param sql 创建表语句 - * @return 结果 - */ - public boolean createTable(String sql); - - /** - * 导入表结构 - * - * @param tableList 导入表列表 - * @param operName 操作人员 - */ - public void importGenTable(List tableList, String operName); - - /** - * 预览代码 - * - * @param tableId 表编号 - * @return 预览数据列表 - */ - public Map previewCode(Long tableId); - - /** - * 生成代码(下载方式) - * - * @param tableName 表名称 - * @return 数据 - */ - public byte[] downloadCode(String tableName); - - /** - * 生成代码(自定义路径) - * - * @param tableName 表名称 - * @return 数据 - */ - public void generatorCode(String tableName); - - /** - * 同步数据库 - * - * @param tableName 表名称 - */ - public void synchDb(String tableName); - - /** - * 批量生成代码(下载方式) - * - * @param tableNames 表数组 - * @return 数据 - */ - public byte[] downloadCode(String[] tableNames); - - /** - * 修改保存参数校验 - * - * @param genTable 业务信息 - */ - public void validateEdit(GenTable genTable); -} diff --git a/ff-gen/src/main/java/com/ff/gen/util/GenUtils.java b/ff-gen/src/main/java/com/ff/gen/util/GenUtils.java deleted file mode 100644 index ba543f5..0000000 --- a/ff-gen/src/main/java/com/ff/gen/util/GenUtils.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.ff.gen.util; - -import com.ff.base.constant.GenConstants; -import com.ff.base.utils.StringUtils; -import com.ff.gen.config.GenConfig; -import com.ff.gen.domain.GenTable; -import com.ff.gen.domain.GenTableColumn; -import org.apache.commons.lang3.RegExUtils; - -import java.util.Arrays; - -/** - * 代码生成器 工具类 - * - * @author ff - */ -public class GenUtils -{ - /** - * 初始化表信息 - */ - public static void initTable(GenTable genTable, String operName) - { - genTable.setClassName(convertClassName(genTable.getTableName())); - genTable.setPackageName(GenConfig.getPackageName()); - genTable.setModuleName(getModuleName(GenConfig.getPackageName())); - genTable.setBusinessName(getBusinessName(genTable.getTableName())); - genTable.setFunctionName(replaceText(genTable.getTableComment())); - genTable.setFunctionAuthor(GenConfig.getAuthor()); - genTable.setCreateBy(operName); - } - - /** - * 初始化列属性字段 - */ - public static void initColumnField(GenTableColumn column, GenTable table) - { - String dataType = getDbType(column.getColumnType()); - String columnName = column.getColumnName(); - column.setTableId(table.getTableId()); - column.setCreateBy(table.getCreateBy()); - // 设置java字段名 - column.setJavaField(StringUtils.toCamelCase(columnName)); - // 设置默认类型 - column.setJavaType(GenConstants.TYPE_STRING); - column.setQueryType(GenConstants.QUERY_EQ); - - if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) - { - // 字符串长度超过500设置为文本域 - Integer columnLength = getColumnLength(column.getColumnType()); - String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; - column.setHtmlType(htmlType); - } - else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType)) - { - column.setJavaType(GenConstants.TYPE_DATE); - column.setHtmlType(GenConstants.HTML_DATETIME); - } - else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType)) - { - column.setHtmlType(GenConstants.HTML_INPUT); - - // 如果是浮点型 统一用BigDecimal - String[] str = StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ","); - if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0) - { - column.setJavaType(GenConstants.TYPE_BIGDECIMAL); - }else if ("bit".equalsIgnoreCase(dataType)){ - column.setJavaType(GenConstants.BOOL); - } - // 如果是整形 - else if (str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) - { - column.setJavaType(GenConstants.TYPE_INTEGER); - }else if ("tinyint".equalsIgnoreCase(dataType)||dataType.equals("int")){ - column.setJavaType(GenConstants.TYPE_INTEGER); - } - // 长整形 - else - { - column.setJavaType(GenConstants.TYPE_LONG); - } - } - - // 插入字段(默认所有字段都需要插入) - column.setIsInsert(GenConstants.REQUIRE); - - // 编辑字段 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk()) - { - column.setIsEdit(GenConstants.REQUIRE); - } - // 列表字段 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) - { - column.setIsList(GenConstants.REQUIRE); - } - // 查询字段 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) - { - column.setIsQuery(GenConstants.REQUIRE); - } - - // 查询字段类型 - if (StringUtils.endsWithIgnoreCase(columnName, "name")) - { - column.setQueryType(GenConstants.QUERY_LIKE); - } - // 状态字段设置单选框 - if (StringUtils.endsWithIgnoreCase(columnName, "status")) - { - column.setHtmlType(GenConstants.HTML_RADIO); - } - // 类型&性别字段设置下拉框 - else if (StringUtils.endsWithIgnoreCase(columnName, "type") - || StringUtils.endsWithIgnoreCase(columnName, "sex")) - { - column.setHtmlType(GenConstants.HTML_SELECT); - } - // 图片字段设置图片上传控件 - else if (StringUtils.endsWithIgnoreCase(columnName, "image")) - { - column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); - } - // 文件字段设置文件上传控件 - else if (StringUtils.endsWithIgnoreCase(columnName, "file")) - { - column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); - } - // 内容字段设置富文本控件 - else if (StringUtils.endsWithIgnoreCase(columnName, "content")) - { - column.setHtmlType(GenConstants.HTML_EDITOR); - } - } - - /** - * 校验数组是否包含指定值 - * - * @param arr 数组 - * @param targetValue 值 - * @return 是否包含 - */ - public static boolean arraysContains(String[] arr, String targetValue) - { - return Arrays.asList(arr).contains(targetValue); - } - - /** - * 获取模块名 - * - * @param packageName 包名 - * @return 模块名 - */ - public static String getModuleName(String packageName) - { - int lastIndex = packageName.lastIndexOf("."); - int nameLength = packageName.length(); - return StringUtils.substring(packageName, lastIndex + 1, nameLength); - } - - /** - * 获取业务名 - * - * @param tableName 表名 - * @return 业务名 - */ - public static String getBusinessName(String tableName) - { - int lastIndex = tableName.lastIndexOf("_"); - int nameLength = tableName.length(); - return StringUtils.substring(tableName, lastIndex + 1, nameLength); - } - - /** - * 表名转换成Java类名 - * - * @param tableName 表名称 - * @return 类名 - */ - public static String convertClassName(String tableName) - { - boolean autoRemovePre = GenConfig.getAutoRemovePre(); - String tablePrefix = GenConfig.getTablePrefix(); - if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) - { - String[] searchList = StringUtils.split(tablePrefix, ","); - tableName = replaceFirst(tableName, searchList); - } - return StringUtils.convertToCamelCase(tableName); - } - - /** - * 批量替换前缀 - * - * @param replacementm 替换值 - * @param searchList 替换列表 - * @return - */ - public static String replaceFirst(String replacementm, String[] searchList) - { - String text = replacementm; - for (String searchString : searchList) - { - if (replacementm.startsWith(searchString)) - { - text = replacementm.replaceFirst(searchString, ""); - break; - } - } - return text; - } - - /** - * 关键字替换 - * - * @param text 需要被替换的名字 - * @return 替换后的名字 - */ - public static String replaceText(String text) - { - return RegExUtils.replaceAll(text, "(?:表|若依)", ""); - } - - /** - * 获取数据库类型字段 - * - * @param columnType 列类型 - * @return 截取后的列类型 - */ - public static String getDbType(String columnType) - { - if (StringUtils.indexOf(columnType, "(") > 0) - { - return StringUtils.substringBefore(columnType, "("); - } - else - { - return columnType; - } - } - - /** - * 获取字段长度 - * - * @param columnType 列类型 - * @return 截取后的列类型 - */ - public static Integer getColumnLength(String columnType) - { - if (StringUtils.indexOf(columnType, "(") > 0) - { - String length = StringUtils.substringBetween(columnType, "(", ")"); - return Integer.valueOf(length); - } - else - { - return 0; - } - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/util/VelocityInitializer.java b/ff-gen/src/main/java/com/ff/gen/util/VelocityInitializer.java deleted file mode 100644 index 227a463..0000000 --- a/ff-gen/src/main/java/com/ff/gen/util/VelocityInitializer.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.ff.gen.util; - -import com.ff.base.constant.Constants; -import org.apache.velocity.app.Velocity; - -import java.util.Properties; - -/** - * VelocityEngine工厂 - * - * @author ff - */ -public class VelocityInitializer -{ - /** - * 初始化vm方法 - */ - public static void initVelocity() - { - Properties p = new Properties(); - try - { - // 加载classpath目录下的vm文件 - p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); - // 定义字符集 - p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); - // 初始化Velocity引擎,指定配置Properties - Velocity.init(p); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } -} diff --git a/ff-gen/src/main/java/com/ff/gen/util/VelocityUtils.java b/ff-gen/src/main/java/com/ff/gen/util/VelocityUtils.java deleted file mode 100644 index b94bcd0..0000000 --- a/ff-gen/src/main/java/com/ff/gen/util/VelocityUtils.java +++ /dev/null @@ -1,409 +0,0 @@ -package com.ff.gen.util; - -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.ff.base.constant.GenConstants; -import com.ff.base.utils.DateUtils; -import com.ff.base.utils.StringUtils; -import com.ff.gen.domain.GenTable; -import com.ff.gen.domain.GenTableColumn; -import org.apache.velocity.VelocityContext; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * 模板处理工具类 - * - * @author ff - */ -public class VelocityUtils -{ - /** 项目空间路径 */ - private static final String PROJECT_PATH = "main/java"; - - /** mybatis空间路径 */ - private static final String MYBATIS_PATH = "main/resources/mapper"; - - /** 默认上级菜单,系统工具 */ - private static final String DEFAULT_PARENT_MENU_ID = "3"; - - /** - * 设置模板变量信息 - * - * @return 模板列表 - */ - public static VelocityContext prepareContext(GenTable genTable) - { - String moduleName = genTable.getModuleName(); - String businessName = genTable.getBusinessName(); - String packageName = genTable.getPackageName(); - String tplCategory = genTable.getTplCategory(); - String functionName = genTable.getFunctionName(); - - VelocityContext velocityContext = new VelocityContext(); - velocityContext.put("tplCategory", genTable.getTplCategory()); - velocityContext.put("tableName", genTable.getTableName()); - velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】"); - velocityContext.put("ClassName", genTable.getClassName()); - velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); - velocityContext.put("moduleName", genTable.getModuleName()); - velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); - velocityContext.put("businessName", genTable.getBusinessName()); - velocityContext.put("basePackage", getPackagePrefix(packageName)); - velocityContext.put("packageName", packageName); - velocityContext.put("author", genTable.getFunctionAuthor()); - velocityContext.put("datetime", DateUtils.getDate()); - velocityContext.put("pkColumn", genTable.getPkColumn()); - velocityContext.put("importList", getImportList(genTable)); - velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); - velocityContext.put("columns", genTable.getColumns()); - velocityContext.put("table", genTable); - velocityContext.put("dicts", getDicts(genTable)); - setMenuVelocityContext(velocityContext, genTable); - if (GenConstants.TPL_TREE.equals(tplCategory)) - { - setTreeVelocityContext(velocityContext, genTable); - } - if (GenConstants.TPL_SUB.equals(tplCategory)) - { - setSubVelocityContext(velocityContext, genTable); - } - return velocityContext; - } - - public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) - { - String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String parentMenuId = getParentMenuId(paramsObj); - context.put("parentMenuId", parentMenuId); - } - - public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) - { - String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String treeCode = getTreecode(paramsObj); - String treeParentCode = getTreeParentCode(paramsObj); - String treeName = getTreeName(paramsObj); - - context.put("treeCode", treeCode); - context.put("treeParentCode", treeParentCode); - context.put("treeName", treeName); - context.put("expandColumn", getExpandColumn(genTable)); - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { - context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); - } - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { - context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); - } - } - - public static void setSubVelocityContext(VelocityContext context, GenTable genTable) - { - GenTable subTable = genTable.getSubTable(); - String subTableName = genTable.getSubTableName(); - String subTableFkName = genTable.getSubTableFkName(); - String subClassName = genTable.getSubTable().getClassName(); - String subTableFkClassName = StringUtils.convertToCamelCase(subTableFkName); - - context.put("subTable", subTable); - context.put("subTableName", subTableName); - context.put("subTableFkName", subTableFkName); - context.put("subTableFkClassName", subTableFkClassName); - context.put("subTableFkclassName", StringUtils.uncapitalize(subTableFkClassName)); - context.put("subClassName", subClassName); - context.put("subclassName", StringUtils.uncapitalize(subClassName)); - context.put("subImportList", getImportList(genTable.getSubTable())); - } - - /** - * 获取模板信息 - * @param tplCategory 生成的模板 - * @param tplWebType 前端类型 - * @return 模板列表 - */ - public static List getTemplateList(String tplCategory, String tplWebType) - { - String useWebType = "vm/vue"; - if ("element-plus".equals(tplWebType)) - { - useWebType = "vm/vue/v3"; - } - List templates = new ArrayList(); - templates.add("vm/java/domain.java.vm"); - templates.add("vm/java/mapper.java.vm"); - templates.add("vm/java/service.java.vm"); - templates.add("vm/java/serviceImpl.java.vm"); - templates.add("vm/java/controller.java.vm"); - templates.add("vm/xml/mapper.xml.vm"); - templates.add("vm/sql/sql.vm"); - templates.add("vm/js/api.js.vm"); - if (GenConstants.TPL_CRUD.equals(tplCategory)) - { - templates.add(useWebType + "/index.vue.vm"); - } - else if (GenConstants.TPL_TREE.equals(tplCategory)) - { - templates.add(useWebType + "/index-tree.vue.vm"); - } - else if (GenConstants.TPL_SUB.equals(tplCategory)) - { - templates.add(useWebType + "/index.vue.vm"); - templates.add("vm/java/sub-domain.java.vm"); - } - return templates; - } - - /** - * 获取文件名 - */ - public static String getFileName(String template, GenTable genTable) - { - // 文件名称 - String fileName = ""; - // 包路径 - String packageName = genTable.getPackageName(); - // 模块名 - String moduleName = genTable.getModuleName(); - // 大写类名 - String className = genTable.getClassName(); - // 业务名称 - String businessName = genTable.getBusinessName(); - - String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); - String mybatisPath = MYBATIS_PATH + "/" + moduleName; - String vuePath = "vue"; - - if (template.contains("domain.java.vm")) - { - fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); - } - if (template.contains("sub-domain.java.vm") && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) - { - fileName = StringUtils.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); - } - else if (template.contains("mapper.java.vm")) - { - fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); - } - else if (template.contains("service.java.vm")) - { - fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); - } - else if (template.contains("serviceImpl.java.vm")) - { - fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); - } - else if (template.contains("controller.java.vm")) - { - fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); - } - else if (template.contains("mapper.xml.vm")) - { - fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); - } - else if (template.contains("sql.vm")) - { - fileName = businessName + "Menu.sql"; - } - else if (template.contains("api.js.vm")) - { - fileName = StringUtils.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); - } - else if (template.contains("index.vue.vm")) - { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); - } - else if (template.contains("index-tree.vue.vm")) - { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); - } - return fileName; - } - - /** - * 获取包前缀 - * - * @param packageName 包名称 - * @return 包前缀名称 - */ - public static String getPackagePrefix(String packageName) - { - int lastIndex = packageName.lastIndexOf("."); - return StringUtils.substring(packageName, 0, lastIndex); - } - - /** - * 根据列类型获取导入包 - * - * @param genTable 业务表对象 - * @return 返回需要导入的包列表 - */ - public static HashSet getImportList(GenTable genTable) - { - List columns = genTable.getColumns(); - GenTable subGenTable = genTable.getSubTable(); - HashSet importList = new HashSet(); - if (StringUtils.isNotNull(subGenTable)) - { - importList.add("java.util.List"); - } - for (GenTableColumn column : columns) - { - if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) - { - importList.add("java.util.Date"); - importList.add("com.fasterxml.jackson.annotation.JsonFormat"); - } - else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) - { - importList.add("java.math.BigDecimal"); - } - } - return importList; - } - - /** - * 根据列类型获取字典组 - * - * @param genTable 业务表对象 - * @return 返回字典组 - */ - public static String getDicts(GenTable genTable) - { - List columns = genTable.getColumns(); - Set dicts = new HashSet(); - addDicts(dicts, columns); - if (StringUtils.isNotNull(genTable.getSubTable())) - { - List subColumns = genTable.getSubTable().getColumns(); - addDicts(dicts, subColumns); - } - return StringUtils.join(dicts, ", "); - } - - /** - * 添加字典列表 - * - * @param dicts 字典列表 - * @param columns 列集合 - */ - public static void addDicts(Set dicts, List columns) - { - for (GenTableColumn column : columns) - { - if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( - column.getHtmlType(), - new String[] { GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX })) - { - dicts.add("'" + column.getDictType() + "'"); - } - } - } - - /** - * 获取权限前缀 - * - * @param moduleName 模块名称 - * @param businessName 业务名称 - * @return 返回权限前缀 - */ - public static String getPermissionPrefix(String moduleName, String businessName) - { - return StringUtils.format("{}:{}", moduleName, businessName); - } - - /** - * 获取上级菜单ID字段 - * - * @param paramsObj 生成其他选项 - * @return 上级菜单ID字段 - */ - public static String getParentMenuId(JSONObject paramsObj) - { - if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) - && StringUtils.isNotEmpty(paramsObj.getString(GenConstants.PARENT_MENU_ID))) - { - return paramsObj.getString(GenConstants.PARENT_MENU_ID); - } - return DEFAULT_PARENT_MENU_ID; - } - - /** - * 获取树编码 - * - * @param paramsObj 生成其他选项 - * @return 树编码 - */ - public static String getTreecode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_CODE)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); - } - return StringUtils.EMPTY; - } - - /** - * 获取树父编码 - * - * @param paramsObj 生成其他选项 - * @return 树父编码 - */ - public static String getTreeParentCode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); - } - return StringUtils.EMPTY; - } - - /** - * 获取树名称 - * - * @param paramsObj 生成其他选项 - * @return 树名称 - */ - public static String getTreeName(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); - } - return StringUtils.EMPTY; - } - - /** - * 获取需要在哪一列上面显示展开按钮 - * - * @param genTable 业务表对象 - * @return 展开按钮列序号 - */ - public static int getExpandColumn(GenTable genTable) - { - String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String treeName = paramsObj.getString(GenConstants.TREE_NAME); - int num = 0; - for (GenTableColumn column : genTable.getColumns()) - { - if (column.isList()) - { - num++; - String columnName = column.getColumnName(); - if (columnName.equals(treeName)) - { - break; - } - } - } - return num; - } -} diff --git a/ff-gen/src/main/resources/generator.yml b/ff-gen/src/main/resources/generator.yml deleted file mode 100644 index 035c10b..0000000 --- a/ff-gen/src/main/resources/generator.yml +++ /dev/null @@ -1,10 +0,0 @@ -# 代码生成 -gen: - # 作者 - author: shi - # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool - packageName: com.ff.common - # 自动去除表前缀,默认是false - autoRemovePre: true - # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) - tablePrefix: ff_ diff --git a/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml b/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml deleted file mode 100644 index 96e9188..0000000 --- a/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column - - - - - - - - insert into gen_table_column ( - column_id, - table_id, - column_name, - column_comment, - column_type, - java_type, - java_field, - is_pk, - is_increment, - is_required, - is_insert, - is_edit, - is_list, - is_query, - query_type, - html_type, - dict_type, - sort, - create_by, - create_time - )values( - #{columnId}, - #{tableId}, - #{columnName}, - #{columnComment}, - #{columnType}, - #{javaType}, - #{javaField}, - #{isPk}, - #{isIncrement}, - #{isRequired}, - #{isInsert}, - #{isEdit}, - #{isList}, - #{isQuery}, - #{queryType}, - #{htmlType}, - #{dictType}, - #{sort}, - #{createBy}, - UNIX_TIMESTAMP() * 1000 - ) - - - - update gen_table_column - - column_comment = #{columnComment}, - java_type = #{javaType}, - java_field = #{javaField}, - is_insert = #{isInsert}, - is_edit = #{isEdit}, - is_list = #{isList}, - is_query = #{isQuery}, - is_required = #{isRequired}, - query_type = #{queryType}, - html_type = #{htmlType}, - dict_type = #{dictType}, - sort = #{sort}, - update_by = #{updateBy}, - update_time = UNIX_TIMESTAMP() * 1000 - - where column_id = #{columnId} - - - - delete from gen_table_column where table_id in - - #{tableId} - - - - - delete from gen_table_column where column_id in - - #{item.columnId} - - - - diff --git a/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml b/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml deleted file mode 100644 index 18e7fed..0000000 --- a/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, tpl_web_type, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark from gen_table - - - - - - - - - - - - - - - - - - insert into gen_table ( - table_id, - table_name, - table_comment, - class_name, - tpl_category, - tpl_web_type, - package_name, - module_name, - business_name, - function_name, - function_author, - gen_type, - gen_path, - remark, - create_by, - create_time - )values( - #{tableId}, - #{tableName}, - #{tableComment}, - #{className}, - #{tplCategory}, - #{tplWebType}, - #{packageName}, - #{moduleName}, - #{businessName}, - #{functionName}, - #{functionAuthor}, - #{genType}, - #{genPath}, - #{remark}, - #{createBy}, - UNIX_TIMESTAMP() * 1000 - ) - - - - ${sql} - - - - update gen_table - - table_name = #{tableName}, - table_comment = #{tableComment}, - sub_table_name = #{subTableName}, - sub_table_fk_name = #{subTableFkName}, - class_name = #{className}, - function_author = #{functionAuthor}, - gen_type = #{genType}, - gen_path = #{genPath}, - tpl_category = #{tplCategory}, - tpl_web_type = #{tplWebType}, - package_name = #{packageName}, - module_name = #{moduleName}, - business_name = #{businessName}, - function_name = #{functionName}, - options = #{options}, - update_by = #{updateBy}, - remark = #{remark}, - update_time =UNIX_TIMESTAMP() * 1000 - - where table_id = #{tableId} - - - - delete from gen_table where table_id in - - #{tableId} - - - - diff --git a/ff-gen/src/main/resources/vm/java/controller.java.vm b/ff-gen/src/main/resources/vm/java/controller.java.vm deleted file mode 100644 index 64ff426..0000000 --- a/ff-gen/src/main/resources/vm/java/controller.java.vm +++ /dev/null @@ -1,115 +0,0 @@ -package ${packageName}.controller; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ff.base.annotation.Log; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.BusinessType; -import ${packageName}.domain.${ClassName}; -import ${packageName}.service.I${ClassName}Service; -import com.ff.base.utils.poi.ExcelUtil; -#if($table.crud || $table.sub) -import com.ff.base.core.page.TableDataInfo; -#elseif($table.tree) -#end - -/** - * ${functionName}Controller - * - * @author ${author} - * @date ${datetime} - */ -@RestController -@RequestMapping("/${moduleName}/${businessName}") -public class ${ClassName}Controller extends BaseController -{ - @Autowired - private I${ClassName}Service ${className}Service; - - /** - * 查询${functionName}列表 - */ - @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')") - @GetMapping("/list") -#if($table.crud || $table.sub) - public TableDataInfo list(${ClassName} ${className}) - { - startPage(); - List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - return getDataTable(list); - } -#elseif($table.tree) - public AjaxResult list(${ClassName} ${className}) - { - List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - return success(list); - } -#end - - /** - * 导出${functionName}列表 - */ - @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')") - @Log(title = "${functionName}", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, ${ClassName} ${className}) - { - List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); - ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); - util.exportExcel(response, list, "${functionName}数据"); - } - - /** - * 获取${functionName}详细信息 - */ - @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')") - @GetMapping(value = "/{${pkColumn.javaField}}") - public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) - { - return success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); - } - - /** - * 新增${functionName} - */ - @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')") - @Log(title = "${functionName}", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody ${ClassName} ${className}) - { - return toAjax(${className}Service.insert${ClassName}(${className})); - } - - /** - * 修改${functionName} - */ - @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')") - @Log(title = "${functionName}", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody ${ClassName} ${className}) - { - return toAjax(${className}Service.update${ClassName}(${className})); - } - - /** - * 删除${functionName} - */ - @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')") - @Log(title = "${functionName}", businessType = BusinessType.DELETE) - @DeleteMapping("/{${pkColumn.javaField}s}") - public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) - { - return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s)); - } -} diff --git a/ff-gen/src/main/resources/vm/java/domain.java.vm b/ff-gen/src/main/resources/vm/java/domain.java.vm deleted file mode 100644 index 5fa9a07..0000000 --- a/ff-gen/src/main/resources/vm/java/domain.java.vm +++ /dev/null @@ -1,61 +0,0 @@ -package ${packageName}.domain; - -#foreach ($import in $importList) -import ${import}; -#end -import com.ff.base.annotation.Excel; -#if($table.crud || $table.sub) -import com.ff.base.core.domain.BaseEntity; -#elseif($table.tree) -import com.ff.base.core.domain.TreeEntity; -#end -import lombok.Data; -/** - * ${functionName}对象 ${tableName} - * - * @author ${author} - * @date ${datetime} - */ -#if($table.crud || $table.sub) -#set($Entity="BaseEntity") -#elseif($table.tree) -#set($Entity="TreeEntity") -#end -@Data -public class ${ClassName} extends ${Entity} -{ - private static final long serialVersionUID = 1L; - -#foreach ($column in $columns) -#if(!$table.isSuperColumn($column.javaField)) - /** $column.columnComment */ -#if($column.list) -#set($parentheseIndex=$column.columnComment.indexOf("(")) -#if($parentheseIndex != -1) -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) -#else -#set($comment=$column.columnComment) -#end -#if($parentheseIndex != -1) - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") -#elseif($column.javaType == 'Date') - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#elseif($column.javaType == 'Long') - @JsonSerialize(using = ToStringSerializer.class) - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#else - @Excel(name = "${comment}") -#end -#end - private $column.javaType $column.javaField; - -#end -#end -#if($table.sub) - /** $table.subTable.functionName信息 */ - private List<${subClassName}> ${subclassName}List; - -#end - -} diff --git a/ff-gen/src/main/resources/vm/java/mapper.java.vm b/ff-gen/src/main/resources/vm/java/mapper.java.vm deleted file mode 100644 index 7f0a5b1..0000000 --- a/ff-gen/src/main/resources/vm/java/mapper.java.vm +++ /dev/null @@ -1,91 +0,0 @@ -package ${packageName}.mapper; - -import java.util.List; -import ${packageName}.domain.${ClassName}; -#if($table.sub) -import ${packageName}.domain.${subClassName}; -#end - -/** - * ${functionName}Mapper接口 - * - * @author ${author} - * @date ${datetime} - */ -public interface ${ClassName}Mapper -{ - /** - * 查询${functionName} - * - * @param ${pkColumn.javaField} ${functionName}主键 - * @return ${functionName} - */ - ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); - - /** - * 查询${functionName}列表 - * - * @param ${className} ${functionName} - * @return ${functionName}集合 - */ - List<${ClassName}> select${ClassName}List(${ClassName} ${className}); - - /** - * 新增${functionName} - * - * @param ${className} ${functionName} - * @return 结果 - */ - int insert${ClassName}(${ClassName} ${className}); - - /** - * 修改${functionName} - * - * @param ${className} ${functionName} - * @return 结果 - */ - int update${ClassName}(${ClassName} ${className}); - - /** - * 删除${functionName} - * - * @param ${pkColumn.javaField} ${functionName}主键 - * @return 结果 - */ - int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); - - /** - * 批量删除${functionName} - * - * @param ${pkColumn.javaField}s 需要删除的数据主键集合 - * @return 结果 - */ - int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); -#if($table.sub) - - /** - * 批量删除${subTable.functionName} - * - * @param ${pkColumn.javaField}s 需要删除的数据主键集合 - * @return 结果 - */ - int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); - - /** - * 批量新增${subTable.functionName} - * - * @param ${subclassName}List ${subTable.functionName}列表 - * @return 结果 - */ - int batch${subClassName}(List<${subClassName}> ${subclassName}List); - - - /** - * 通过${functionName}主键删除${subTable.functionName}信息 - * - * @param ${pkColumn.javaField} ${functionName}ID - * @return 结果 - */ - int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); -#end -} diff --git a/ff-gen/src/main/resources/vm/java/service.java.vm b/ff-gen/src/main/resources/vm/java/service.java.vm deleted file mode 100644 index eba6fbf..0000000 --- a/ff-gen/src/main/resources/vm/java/service.java.vm +++ /dev/null @@ -1,61 +0,0 @@ -package ${packageName}.service; - -import java.util.List; -import ${packageName}.domain.${ClassName}; - -/** - * ${functionName}Service接口 - * - * @author ${author} - * @date ${datetime} - */ -public interface I${ClassName}Service -{ - /** - * 查询${functionName} - * - * @param ${pkColumn.javaField} ${functionName}主键 - * @return ${functionName} - */ - ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); - - /** - * 查询${functionName}列表 - * - * @param ${className} ${functionName} - * @return ${functionName}集合 - */ - List<${ClassName}> select${ClassName}List(${ClassName} ${className}); - - /** - * 新增${functionName} - * - * @param ${className} ${functionName} - * @return 结果 - */ - int insert${ClassName}(${ClassName} ${className}); - - /** - * 修改${functionName} - * - * @param ${className} ${functionName} - * @return 结果 - */ - int update${ClassName}(${ClassName} ${className}); - - /** - * 批量删除${functionName} - * - * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合 - * @return 结果 - */ - int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); - - /** - * 删除${functionName}信息 - * - * @param ${pkColumn.javaField} ${functionName}主键 - * @return 结果 - */ - int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); -} diff --git a/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm b/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm deleted file mode 100644 index 79ca062..0000000 --- a/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm +++ /dev/null @@ -1,172 +0,0 @@ -package ${packageName}.service.impl; - -import java.util.List; -#foreach ($column in $columns) -#if($column.javaField == 'createTime' || $column.javaField == 'updateTime') -import com.ff.base.utils.DateUtils; -#break -#end -#end -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -#if($table.sub) -import java.util.ArrayList; -import com.ff.base.utils.StringUtils; -import org.springframework.transaction.annotation.Transactional; -import ${packageName}.domain.${subClassName}; -#end -import ${packageName}.mapper.${ClassName}Mapper; -import ${packageName}.domain.${ClassName}; -import ${packageName}.service.I${ClassName}Service; -import cn.hutool.core.util.IdUtil; - - -/** - * ${functionName}Service业务层处理 - * - * @author ${author} - * @date ${datetime} - */ -@Service -public class ${ClassName}ServiceImpl implements I${ClassName}Service -{ - @Autowired - private ${ClassName}Mapper ${className}Mapper; - - /** - * 查询${functionName} - * - * @param ${pkColumn.javaField} ${functionName}主键 - * @return ${functionName} - */ - @Override - public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) - { - return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); - } - - /** - * 查询${functionName}列表 - * - * @param ${className} ${functionName} - * @return ${functionName} - */ - @Override - public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) - { - return ${className}Mapper.select${ClassName}List(${className}); - } - - /** - * 新增${functionName} - * - * @param ${className} ${functionName} - * @return 结果 - */ -#if($table.sub) - @Transactional -#end - @Override - public int insert${ClassName}(${ClassName} ${className}) - { - ${className}.setId(IdUtil.getSnowflakeNextId()); -#foreach ($column in $columns) -#if($column.javaField == 'createTime') - ${className}.setCreateTime(DateUtils.getNowDate()); -#end -#end -#if($table.sub) - int rows = ${className}Mapper.insert${ClassName}(${className}); - insert${subClassName}(${className}); - return rows; -#else - return ${className}Mapper.insert${ClassName}(${className}); -#end - } - - /** - * 修改${functionName} - * - * @param ${className} ${functionName} - * @return 结果 - */ -#if($table.sub) - @Transactional -#end - @Override - public int update${ClassName}(${ClassName} ${className}) - { -#foreach ($column in $columns) -#if($column.javaField == 'updateTime') - ${className}.setUpdateTime(DateUtils.getNowDate()); -#end -#end -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); - insert${subClassName}(${className}); -#end - return ${className}Mapper.update${ClassName}(${className}); - } - - /** - * 批量删除${functionName} - * - * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 - * @return 结果 - */ -#if($table.sub) - @Transactional -#end - @Override - public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) - { -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); -#end - return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s); - } - - /** - * 删除${functionName}信息 - * - * @param ${pkColumn.javaField} ${functionName}主键 - * @return 结果 - */ -#if($table.sub) - @Transactional -#end - @Override - public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) - { -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); -#end - return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); - } -#if($table.sub) - - /** - * 新增${subTable.functionName}信息 - * - * @param ${className} ${functionName}对象 - */ - public void insert${subClassName}(${ClassName} ${className}) - { - List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); - ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); - if (StringUtils.isNotNull(${subclassName}List)) - { - List<${subClassName}> list = new ArrayList<${subClassName}>(); - for (${subClassName} ${subclassName} : ${subclassName}List) - { - ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); - list.add(${subclassName}); - } - if (list.size() > 0) - { - ${className}Mapper.batch${subClassName}(list); - } - } - } -#end -} diff --git a/ff-gen/src/main/resources/vm/java/sub-domain.java.vm b/ff-gen/src/main/resources/vm/java/sub-domain.java.vm deleted file mode 100644 index 9840cbf..0000000 --- a/ff-gen/src/main/resources/vm/java/sub-domain.java.vm +++ /dev/null @@ -1,76 +0,0 @@ -package ${packageName}.domain; - -#foreach ($import in $subImportList) -import ${import}; -#end -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.ff.base.annotation.Excel; -import com.ff.base.core.domain.BaseEntity; - -/** - * ${subTable.functionName}对象 ${subTableName} - * - * @author ${author} - * @date ${datetime} - */ -public class ${subClassName} extends BaseEntity -{ - private static final long serialVersionUID = 1L; - -#foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) - /** $column.columnComment */ -#if($column.list) -#set($parentheseIndex=$column.columnComment.indexOf("(")) -#if($parentheseIndex != -1) -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) -#else -#set($comment=$column.columnComment) -#end -#if($parentheseIndex != -1) - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") -#elseif($column.javaType == 'Date') - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#else - @Excel(name = "${comment}") -#end -#end - private $column.javaType $column.javaField; - -#end -#end -#foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } - - public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end -#end - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $subTable.columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end - .toString(); - } -} diff --git a/ff-gen/src/main/resources/vm/js/api.js.vm b/ff-gen/src/main/resources/vm/js/api.js.vm deleted file mode 100644 index 9295524..0000000 --- a/ff-gen/src/main/resources/vm/js/api.js.vm +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询${functionName}列表 -export function list${BusinessName}(query) { - return request({ - url: '/${moduleName}/${businessName}/list', - method: 'get', - params: query - }) -} - -// 查询${functionName}详细 -export function get${BusinessName}(${pkColumn.javaField}) { - return request({ - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, - method: 'get' - }) -} - -// 新增${functionName} -export function add${BusinessName}(data) { - return request({ - url: '/${moduleName}/${businessName}', - method: 'post', - data: data - }) -} - -// 修改${functionName} -export function update${BusinessName}(data) { - return request({ - url: '/${moduleName}/${businessName}', - method: 'put', - data: data - }) -} - -// 删除${functionName} -export function del${BusinessName}(${pkColumn.javaField}) { - return request({ - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, - method: 'delete' - }) -} diff --git a/ff-gen/src/main/resources/vm/sql/sql.vm b/ff-gen/src/main/resources/vm/sql/sql.vm deleted file mode 100644 index 2ad2f0b..0000000 --- a/ff-gen/src/main/resources/vm/sql/sql.vm +++ /dev/null @@ -1,22 +0,0 @@ --- 菜单 SQL -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', UNIX_TIMESTAMP() * 1000, '', null, '${functionName}菜单'); - --- 按钮父菜单ID -SELECT @parentId := LAST_INSERT_ID(); - --- 按钮 SQL -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('${functionName}查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', UNIX_TIMESTAMP() * 1000, '', null, ''); - -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('${functionName}新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', UNIX_TIMESTAMP() * 1000, '', null, ''); - -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('${functionName}修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', UNIX_TIMESTAMP() * 1000, '', null, ''); - -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('${functionName}删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', UNIX_TIMESTAMP() * 1000, '', null, ''); - -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('${functionName}导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', UNIX_TIMESTAMP() * 1000, '', null, ''); \ No newline at end of file diff --git a/ff-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ff-gen/src/main/resources/vm/vue/index-tree.vue.vm deleted file mode 100644 index 4819c2a..0000000 --- a/ff-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ /dev/null @@ -1,505 +0,0 @@ - - - diff --git a/ff-gen/src/main/resources/vm/vue/index.vue.vm b/ff-gen/src/main/resources/vm/vue/index.vue.vm deleted file mode 100644 index 6296014..0000000 --- a/ff-gen/src/main/resources/vm/vue/index.vue.vm +++ /dev/null @@ -1,602 +0,0 @@ - - - diff --git a/ff-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm b/ff-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm deleted file mode 100644 index c54d62b..0000000 --- a/ff-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm +++ /dev/null @@ -1,474 +0,0 @@ - - - diff --git a/ff-gen/src/main/resources/vm/vue/v3/index.vue.vm b/ff-gen/src/main/resources/vm/vue/v3/index.vue.vm deleted file mode 100644 index 8b25665..0000000 --- a/ff-gen/src/main/resources/vm/vue/v3/index.vue.vm +++ /dev/null @@ -1,590 +0,0 @@ - - - diff --git a/ff-gen/src/main/resources/vm/xml/mapper.xml.vm b/ff-gen/src/main/resources/vm/xml/mapper.xml.vm deleted file mode 100644 index 1f68d09..0000000 --- a/ff-gen/src/main/resources/vm/xml/mapper.xml.vm +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -#foreach ($column in $columns) - -#end - -#if($table.sub) - - - - - - -#foreach ($column in $subTable.columns) - -#end - -#end - - - select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName} - - - - - -#if($table.sub) - - -#end - - - insert into ${tableName} - -#foreach($column in $columns) -#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) - $column.columnName, -#end -#end - - -#foreach($column in $columns) -#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) - #{$column.javaField}, -#end -#end - - - - - update ${tableName} - -#foreach($column in $columns) -#if($column.columnName != $pkColumn.columnName) - $column.columnName = #{$column.javaField}, -#end -#end - - where ${pkColumn.columnName} = #{${pkColumn.javaField}} - - - - delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}} - - - - delete from ${tableName} where ${pkColumn.columnName} in - - #{${pkColumn.javaField}} - - -#if($table.sub) - - - delete from ${subTableName} where ${subTableFkName} in - - #{${subTableFkclassName}} - - - - - delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}} - - - - insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values - - (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end) - - -#end - \ No newline at end of file diff --git a/ff-platform/xk-dbsports/pom.xml b/ff-platform/xk-dbsports/pom.xml new file mode 100644 index 0000000..f45c96b --- /dev/null +++ b/ff-platform/xk-dbsports/pom.xml @@ -0,0 +1,92 @@ + + + 4.0.0 + + ff + com.ff + 0.0.1 + + + xk-dbsports + 0.0.1 + xk-dbsports + jar + + + + + + com.ff + ff-util + + + + com.ff + ff-exception + + + com.ff + xk-client + + + org.projectlombok + lombok + provided + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba.fastjson2 + fastjson2 + + + + commons-io + commons-io + + + com.dtflys.forest + forest-spring-boot-starter + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.15 + + true + + + + + repackage + + + + + + xk-dbsports + + + diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/address/DBSportsAddress.java b/ff-platform/xk-dbsports/src/main/java/com/ff/address/DBSportsAddress.java new file mode 100644 index 0000000..01acd0b --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/address/DBSportsAddress.java @@ -0,0 +1,32 @@ +package com.ff.address; + +import com.dtflys.forest.callback.AddressSource; +import com.dtflys.forest.http.ForestAddress; +import com.dtflys.forest.http.ForestRequest; +import com.ff.enums.GamePlatforms; +import com.ff.service.PlatformManager; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +/** + * DB体育对接文档 + * 账号: api + * 密码: a12345678 + * + * @author cengy + */ +@Component +public class DBSportsAddress implements AddressSource { + + @Resource + private PlatformManager platformService; + + @Override + public ForestAddress getAddress(ForestRequest request) { + String apiBaseUrl = platformService.get(GamePlatforms.DBSports.getCode()) + .getUrlInfo().getUrl(); + return new ForestAddress("https", apiBaseUrl, 443, ""); + } +} \ No newline at end of file diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/client/DBSportsClient.java b/ff-platform/xk-dbsports/src/main/java/com/ff/client/DBSportsClient.java new file mode 100644 index 0000000..86174f3 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/client/DBSportsClient.java @@ -0,0 +1,113 @@ +package com.ff.client; + +import com.dtflys.forest.annotation.Address; +import com.dtflys.forest.annotation.Body; +import com.dtflys.forest.annotation.Header; +import com.dtflys.forest.annotation.Post; +import com.ff.address.DBSportsAddress; +import com.ff.dto.*; + +/** + * @author cengy + */ +@Address(source = DBSportsAddress.class) +public interface DBSportsClient { + /** + * 创建投注用户 + * + * @return {@link CreateUserResponse} + */ + @Post(url = "/api/user/create", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + CreateUserResponse createMember(@Body CreateUserRequest request, + @Header("requestId") String requestId); + + /** + * 用户登录接口(注册和登录合并为一个接口) + * + * @param request + * @param requestId + * @return + */ + @Post(url = "/api/user/login", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + LoginResponse login(@Body LoginRequest request, + @Header("requestId") String requestId); + + /** + * 用户金额转入到DB体育平台,支持两位小数,最小0.01,必须是正数 + * + * @param request + * @return {@link TransferResponse} + */ + @Post(url = "/api/fund/transfer", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + TransferResponse transferIn(@Body TransferRequest request, + @Header("requestId") String requestId + ); + + @Post(url = "/api/fund/transfer", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + TransferResponse transferOut(@Body TransferRequest request, + @Header("requestId") String requestId + ); + + @Post(url = "/api/fund/checkBalance", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + GetMemberInfoResponse getMemberInfo(@Body GetMemberInfoRequest request, + @Header("requestId") String requestId); + + /** + * 根据转账ID查询交易记录接口。 + */ + @Post(url = "/api/fund/getTransferRecord", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + TransferDetailResponse transferDetail(@Body TransferDetailRequest request, + @Header("requestId") String requestId); + + /** + * 剔用户 + * + * @param request + * @param requestId + * @return + */ + @Post(value = "/api/user/kickOutUser", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + KickUserResponse kickUser(@Body KickUserRequest request, + @Header("requestId") String requestId); + + + /** + * 拉取订单Json数据 + */ + @Post(url = "/api/bet/queryBetListV2", + headers = { + "Content-type: application/x-www-form-urlencoded" + } + ) + GetBetListResponse getBetList(@Body GetBetListRequest request, + @Header("requestId") String requestId); + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/CreateUserRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/CreateUserRequest.java new file mode 100644 index 0000000..2718ea9 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/CreateUserRequest.java @@ -0,0 +1,28 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class CreateUserRequest implements Serializable { + + private static final long serialVersionUID = 1L; + + private String userName; // 用户名(可以包含但是不要等同于特殊字符或者空格,长度控制在30个字符以下) + private String merchantCode; // 商户code + private String timestamp = System.currentTimeMillis() + ""; // 13位时间戳 + private String currency; // 币种 + private String nickname; // N 昵称 + private String agentId; // N 信用网(代理id) + private String signature; // 签名 signature =MD5(MD5(userName +”&”+ merchantCode +”&”+ timestamp) + ”&”+ key) + + public void buildSignature(String key) { + String signature = Md5Utils.md5New(Md5Utils.md5New(userName + "&" + merchantCode + "&" + timestamp) + "&" + key); + this.signature = signature; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/CreateUserResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/CreateUserResponse.java new file mode 100644 index 0000000..03228b0 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/CreateUserResponse.java @@ -0,0 +1,26 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class CreateUserResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean status; + private String msg; + private String code; + private Long serverTime; + private UserDTO data; + + @Data + public static class UserDTO { + private String userId; + } + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetBetListRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetBetListRequest.java new file mode 100644 index 0000000..de5bb81 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetBetListRequest.java @@ -0,0 +1,93 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class GetBetListRequest implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 用户名(可选) + */ + private String userName; + + /** + * 开始时间(13位时间戳,必填) + */ + private String startTime; + + /** + * 结束时间(13位时间戳,必填) + */ + private String endTime; + + /** + * 商户编码(必填) + */ + private String merchantCode; + + /** + * 赛种ID(可选) + */ + private Integer sportId; + + /** + * 联赛ID(可选) + */ + private Long tournamentId; + + /** + * 结算状态(可选) + * 0: 未结算 + * 1: 已结算 + * 2: 取消人工 + * 3: 待确认 + * 4: 风控拒单 + * 5: 撤单(赛事取消) + */ + private Integer settleStatus; + + /** + * 页面编号,从1开始(可选) + */ + private Integer pageNum; + + /** + * 每页条数(最大1000,可选) + */ + private Integer pageSize; + + /** + * 请求时间戳(13位,必填) + */ + private String timestamp = String.valueOf(System.currentTimeMillis()); + + /** + * 排序方式(可选) + * 1: 订单创建时间(投注时间) + * 2: 订单更新时间 + */ + private Integer orderBy; + + /** + * 语言(可选,默认中文,传"en"返回英文) + */ + private String language; + + /** + * 签名(必填) + */ + private String signature; + + public void buildSignature(String key) { + String signature = Md5Utils.md5New(Md5Utils.md5New(merchantCode + "&" + startTime + "&" + endTime + "&" + timestamp) + "&" + key); + this.signature = signature; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetBetListResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetBetListResponse.java new file mode 100644 index 0000000..3331a52 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetBetListResponse.java @@ -0,0 +1,199 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * @author cengy + */ +@Data +public class GetBetListResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean status; + private String msg; + private String code; + private Long serverTime; + private DataDTO data; + + @Data + public static class DataDTO { + + + // 当前页码 + private Integer pageNum; + // 每页条数 + private Integer pageSize; + // 总条数 + private Integer totalCount; + // 注单列表 + private List list; + } + + @Data + public static class OrderItemDTO { + // 用户名 + private String userName; + + // 商户编码 + private String merchantCode; + + // 订单ID + private String orderNo; + + // 订单状态,具体见参数字段映射 + private Integer orderStatus; + + // 投注时间(13位时间戳) + private Long createTime; + + // 订单更新时间(13位时间戳) + private Long modifyTime; + + // 实际投注金额 + private String orderAmount; + + // 注单项数量 + private Integer betCount; + + // 结算时间(13位时间戳) + private Long settleTime; + + // 结算金额 + private Double settleAmount; + + // 提前结算投注金额 + private Double preBetAmount; + + // 盈利金额 + private Double profitAmount; + + // 注单结算结果 + // 2:走水,3:输,4:赢,5:赢半,6:输半,7:赛事取消,8:赛事延期 + private Integer outcome; + + // 串关类型 + private Integer seriesType; + + // 串关值 + private String seriesValue; + + // 结算次数 + private Integer settleTimes; + + // 设备类型:1-H5,2-PC,3-Android,4-IOS + private String deviceType; + + // 移动设备标识 + private String deviceImei; + + // 用户IP地址 + private String ip; + + // 币种 + private String currency; + + // 汇率 + private BigDecimal exchangeRate; + + // 最大中奖金额 + private Double maxWinAmount; + + // VIP等级 + private Integer vipLevel; + + // 投注前余额 + private BigDecimal beforeTransfer; + + // 投注后余额 + private BigDecimal afterTransfer; + + // 有效投注金额 + private BigDecimal validOrderAmount; + + // 注单详情列表 + private List detailList; + } + + @Data + public static class DetailItemDTO { + // 投注项编号 + private Long betNo; + + // 投注项ID + private Long playOptionsId; + + // 赛事ID + private Long matchId; + + // 比赛开始时间(13位时间戳) + private Long beginTime; + + // 注单金额 + private Double betAmount; + + // 联赛名称 + private String matchName; + + // 比赛对阵 + private String matchInfo; + + // 投注类型: + // 1:早盘,2:滚球盘,3:冠军盘,4:虚拟赛事,5:电竞赛事 + private Integer matchType; + + // 赛种ID + private Integer sportId; + + // 玩法ID + private Integer playId; + + // 投注项(如主客队) + private String playOptions; + + // 游戏名称 + private String sportName; + + // 联赛ID + private Long tournamentId; + + // 投注项名称 + private String playOptionName; + + // 玩法名称 + private String playName; + + // 盘口类型 + private String marketType; + + // 盘口值 + private String marketValue; + + // 让球值 + private BigDecimal handicap; + + // 结算比分(我方处理后所得,数据商可能未提供) + private String settleScore; + + // 基准分 + private String scoreBenchmark; + + // 当前赔率(欧洲盘表示) + private BigDecimal oddsValue; + + // 注单结算结果: + // 0:无结果,2:走水,3:输,4:赢,5:赢一半,6:输一半, + // 7:赛事取消,8:赛事延期,11:比赛延迟,12:比赛中断, + // 13:未知,15:比赛放弃,16:异常盘口,17:未知状态, + // 18:比赛取消,19:比赛延期 + private String betResult; + + // 最终赔率(按盘口类型) + private BigDecimal oddFinally; + } + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetMemberInfoRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetMemberInfoRequest.java new file mode 100644 index 0000000..de894bc --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetMemberInfoRequest.java @@ -0,0 +1,36 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class GetMemberInfoRequest implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 用户名,不能为空 + */ + private String userName; + + /** + * 商户编码 + */ + private String merchantCode; + /** + * Long型时间戳(13位) + */ + private String timestamp = System.currentTimeMillis() + ""; + + private String signature; + + public void buildSignature(String key) { + + String signature = Md5Utils.md5New(Md5Utils.md5New(merchantCode + "&" + userName + "&" + timestamp) + "&" + key); + this.signature = signature; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetMemberInfoResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetMemberInfoResponse.java new file mode 100644 index 0000000..c3d34e4 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/GetMemberInfoResponse.java @@ -0,0 +1,26 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author cengy + */ +@Data +public class GetMemberInfoResponse implements Serializable { + private static final long serialVersionUID = 1L; + + private Boolean status; + private String msg; + private String code; + private Long serverTime; + private MemberInfoDTO data; + + @Data + public static class MemberInfoDTO { + private BigDecimal balance; + private String userName; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/KickUserRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/KickUserRequest.java new file mode 100644 index 0000000..c300a38 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/KickUserRequest.java @@ -0,0 +1,24 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class KickUserRequest implements Serializable { + + private static final long serialVersionUID = 1L; + private String userName; + private String merchantCode; + private String timestamp = System.currentTimeMillis() + ""; + private String signature; + + public void buildSignature(String key) { + String signature = Md5Utils.md5New(Md5Utils.md5New(merchantCode + "&" + userName + "&" + timestamp) + "&" + key); + this.signature = signature; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/KickUserResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/KickUserResponse.java new file mode 100644 index 0000000..ae7ba63 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/KickUserResponse.java @@ -0,0 +1,20 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class KickUserResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean status; + private String msg; + private String code; + private Long serverTime; + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/LoginRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/LoginRequest.java new file mode 100644 index 0000000..83f6177 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/LoginRequest.java @@ -0,0 +1,57 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author cengy + */ +@Data +public class LoginRequest implements Serializable { + + private static final long serialVersionUID = 1L; + private String userName; + private String merchantCode; + private String timestamp = System.currentTimeMillis() + ""; + private String signature; + + // 不能传错,用户可能受到设备类型相关风控措施的错误限制,进而影响正常用户货量,并产生客诉 + private String terminal; // 终端类型:【电脑传值:pc】,【移动设备传值:mobile】 注:这个参数传值必须是pc或者mobile, + private BigDecimal balance; // 用户余额,N + private String currency; // 币种(见参数映射:支持币种 )会员首次登录,必须填写币种参数,否则注册失败 + + private String callbackUrl; // 玩家会话失效跳转的商户地址url(非必传) + private String stoken; // 非必传字段(商户方用户会话) + + // 非必传字段(支持体育游戏其他端的跳转) , + // C端⽀持跳转的游戏,如果C端⽀持跳转多个游戏 , + // 则使⽤逗号区分。 具体字段可查看:参数字段映射第6条 参数字段映射 + private String jumpsupport; + private String jumpfrom; // 非必传字段,同上 + + private String agentId; // 信用网(代理id),N + // 用户语种: + //zh:中文 + //en:英文 + //vi:越南语 + //tw:中文繁体 + //th:泰语 + //ms:马来语 + //ad:印尼语 + //ko:韩语 + //mya:缅甸语 + //pt:葡萄牙语 + //es:西班牙语 + //非必传字段 + private String language; + private String ip; // 非必传字段 说明:商户端在该字段上传入用户登陆时端ip + + public void buildSignature(String key) { + String signature = Md5Utils.md5New(Md5Utils.md5New(merchantCode + "&" + userName + "&" + terminal + "&" + timestamp) + "&" + key); + + this.signature = signature; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/LoginResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/LoginResponse.java new file mode 100644 index 0000000..9b689dc --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/LoginResponse.java @@ -0,0 +1,34 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author cengy + */ +@Data +public class LoginResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean status; + private String msg; + private String code; + private Long serverTime; + private LoginRespDTO data; + + @Data + public static class LoginRespDTO { + private String domain; // 体育游戏前端URL + private String token; // 带有登录状态的token + private String apiDomain;// 赛事API的域名(若没有对接赛事API,为空) + private String imgDomain; // 静态资源域名 + private String loginUrl; // 登录体育URL,可直接跳转 + private String userId; // 用户id + private String url; // 参加活动的商户使用,客户端域名和参数拼接后提供商户使用 + private List loginUrlArr; // loginUrl数组,多个域名,调试使用 + } + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferDetailRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferDetailRequest.java new file mode 100644 index 0000000..5ad6de2 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferDetailRequest.java @@ -0,0 +1,38 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class TransferDetailRequest implements Serializable { + + /** + * 用户名,N + */ + private String userName; + /** + * 商户code + */ + private String merchantCode; + /** + * 交易id(19位数字) + */ + private String transferId; + + private String timestamp = System.currentTimeMillis() + ""; + + /** + * 签名 + */ + private String signature; + + public void buildSignature(String key) { + String signature = Md5Utils.md5New(Md5Utils.md5New(merchantCode + "&" + transferId + "&" + timestamp) + "&" + key); + this.signature = signature; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferDetailResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferDetailResponse.java new file mode 100644 index 0000000..38b10cb --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferDetailResponse.java @@ -0,0 +1,39 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author cengy + */ +@Data +public class TransferDetailResponse implements Serializable { + private static final long serialVersionUID = 1L; + + private TransferDetailDTO data; + private Boolean status; + private String msg; + private String code; + private Long serverTime; + + @Data + public static class TransferDetailDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private String transferId; // 交易id + private String merchantCode; // 商户代码 + private Long userId; // 用户id + private Integer transferType; // 交易类型 1:加款,2:扣款 + private BigDecimal amount; // 交易金额 + private BigDecimal beforeTransfer; // 转账前余额 + private Integer afterTransfer; // 转账后余额 + private Integer status; // 转账成功与否(0:失败,1:成功) + private String mag; // 转账模式 1:免转,2:转账 + private Integer transferMode; // 转账涉及订单(transferMode为2时,该字段为空) + private Long createTime; // 交易时间 + + } + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferRequest.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferRequest.java new file mode 100644 index 0000000..3df56ff --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferRequest.java @@ -0,0 +1,28 @@ +package com.ff.dto; + +import com.ff.utils.Md5Utils; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class TransferRequest implements Serializable { + + private String userName; + private String merchantCode; + private int transferType; // 1:加款 2:扣款 + + private String amount; // 金额,小数2位 + private String transferId; // 交易的讯息号,唯一标示,不可重复,19位长度的字符串 + private String timestamp = String.valueOf(System.currentTimeMillis()); + private String signature; + + public void buildSignature(String key) { + String signature = Md5Utils.md5New(Md5Utils.md5New(merchantCode + "&" + userName + "&" + transferType + "&" + amount + "&" + transferId + "&" + timestamp) + "&" + key); + this.signature = signature; + } + +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferResponse.java b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferResponse.java new file mode 100644 index 0000000..7bbc66b --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/dto/TransferResponse.java @@ -0,0 +1,25 @@ +package com.ff.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author cengy + */ +@Data +public class TransferResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean status; + private String msg; + private String code; + private Long serverTime; + private TransferDTO data; + + @Data + public static class TransferDTO { + private String userName; + } +} diff --git a/ff-platform/xk-dbsports/src/main/java/com/ff/impl/DBSportsServiceImpl.java b/ff-platform/xk-dbsports/src/main/java/com/ff/impl/DBSportsServiceImpl.java new file mode 100644 index 0000000..4ebc174 --- /dev/null +++ b/ff-platform/xk-dbsports/src/main/java/com/ff/impl/DBSportsServiceImpl.java @@ -0,0 +1,613 @@ +package com.ff.impl; + +import cn.hutool.core.util.IdUtil; +import com.ff.client.DBSportsClient; +import com.ff.client.IGamesService; +import com.ff.dto.*; +import com.ff.enums.ErrorCode; +import com.ff.enums.GamePlatforms; +import com.ff.enums.PlatformType; +import com.ff.enums.StatusType; +import com.ff.exception.ApiException; +import com.ff.exception.BaseException; +import com.ff.game.domain.*; +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.domain.GameFreeRecord; +import com.ff.member.domain.Member; +import com.ff.member.service.IMemberService; +import com.ff.redis.GRedisCache; +import com.ff.utils.IdUtils; +import com.ff.utils.Md5Utils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + + +/** + * DB体育 + * + * @author cengy + * @date 2024/10/21 + */ +@Service("DBSportsService") +@Slf4j +public class DBSportsServiceImpl implements IGamesService { + + @Resource + private GRedisCache gRedisCache; + + @Resource + private IGameExchangeMoneyService gameExchangeMoneyService; + + @Resource + private IGameService gameService; + + + @Resource + private IMemberService memberService; + + @Resource + private DBSportsClient dbSportsClient; + + @Resource + private IGameBettingDetailsService gameBettingDetailsService; + + /** + * 获得就是成功 + * + * @param errorCode 错误代码 + * @return {@link Boolean } + */ + private Boolean isSuccess(String errorCode) { + return "0000".equals(errorCode); + } + + String getSign(String bodyJsonString, String merchantId, String merchantApiSecret, long requestTimestamp) { + + String stringThatNeedsToBeSigned = bodyJsonString + "." + merchantId + "." + requestTimestamp + "." + merchantApiSecret; + String sign = Md5Utils.md5New(stringThatNeedsToBeSigned); + return sign; + } + + /** + * 创建成员 + * + * @param requestDTO 创建成员请求dto + * @return {@link Boolean } + */ + @Override + public Boolean createMember(CreateMemberRequestDTO requestDTO) { + + CreateUserRequest request = new CreateUserRequest(); + request.setUserName(requestDTO.getAccount()); + request.setMerchantCode(requestDTO.getAgentId()); + request.setCurrency(requestDTO.getCurrency()); + request.buildSignature(requestDTO.getAgentKey()); + + //String lang = requestDTO.getLan + String requestId = IdUtils.fastUUID(); + CreateUserResponse response = dbSportsClient.createMember(request, requestId); + if (isSuccess(response.getCode())) { + return Boolean.TRUE; + } + + log.error("创建会员失败, errorCode:{}, errorMessage:{}", response.getCode(), response.getMsg()); + throw new ApiException(ErrorCode.Create_Member_Failure.getCode()); + } + + + /** + * 按代理id进行交换转账 + * + * @param requestDTO 外汇转账 + * @return {@link Long } + */ + @Override + @Transactional + public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO requestDTO) { + + Member member = memberService.selectMemberByGameAccount(requestDTO.getAccount()); + String transactionId = GamePlatforms.DBSports.getCode() + IdUtils.simpleUUID(); + List gameExchangeMonies = gameExchangeMoneyService.selectGameExchangeMoneyList( + GameExchangeMoney.builder() + .tenantKey(requestDTO.getTenantKey()) + .orderId(requestDTO.getOrderId()) + .build() + ); + Assert.isTrue(CollectionUtils.isEmpty(gameExchangeMonies), "订单号重复"); +//获取下一个自增id + GameExchangeMoney exchangeMoney = GameExchangeMoney + .builder() + .orderId(requestDTO.getOrderId()) + .tenantKey(requestDTO.getTenantKey()) + .quota(requestDTO.getQuota()) + .balance(requestDTO.getAmount()) + .exchangeType(requestDTO.getTransferType()) + .currencyCode(requestDTO.getSystemCurrency()) + .memberId(member.getId()) + .transactionId(transactionId) + .platformCode(GamePlatforms.DBSports.getCode()) + .build(); + exchangeMoney.setCreateBy("system"); + //接口限制限制50字符 + exchangeMoney.setTransactionId(transactionId); + // 转入 + if (requestDTO.getTransferType().equals(TransferType.GAMES.getCode())) { + TransferRequest request = new TransferRequest(); + request.setUserName(requestDTO.getAccount()); + request.setTransferType(1); + request.setTransferId(requestDTO.getOrderId()); + request.setMerchantCode(requestDTO.getAgentId()); + request.setAmount(requestDTO.getAmount().toString()); + request.buildSignature(requestDTO.getAgentKey()); + + TransferResponse response = dbSportsClient.transferIn( + request, IdUtils.fastUUID() + ); + if (isSuccess(response.getCode())) { + GetMemberInfoRequest queryMemberRequest = new GetMemberInfoRequest(); + queryMemberRequest.setUserName(requestDTO.getAccount()); + queryMemberRequest.setMerchantCode(requestDTO.getAgentId()); + queryMemberRequest.buildSignature(requestDTO.getAgentKey()); + String requestId = IdUtils.fastUUID(); + try { + GetMemberInfoResponse queryMemberResponse = dbSportsClient.getMemberInfo(queryMemberRequest, requestId); + if (this.isSuccess(queryMemberResponse.getCode())) { + BigDecimal transAmount = requestDTO.getAmount(); + BigDecimal afterAmount = queryMemberResponse.getData().getBalance(); + BigDecimal beforeAmount = afterAmount.subtract(transAmount); + exchangeMoney.setBalance(transAmount); + exchangeMoney.setCoinBefore(beforeAmount); + exchangeMoney.setCoinAfter(afterAmount); + exchangeMoney.setCurrencyBefore(beforeAmount); + exchangeMoney.setCurrencyAfter(afterAmount); + } + } catch (Exception e) { + log.error("查询会员失败, errorCode:{}, errorMessage:{}", response.getCode(), response.getMsg(), e); + } + exchangeMoney.setStatus(StatusType.SUCCESS.getValue()); // SUCCESS + gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); + } else { + throw new ApiException(ErrorCode.Transfer_In_Failure.getCode()); + } + } else { + // 获取第三方钱包余额 + MemberInfoRequestDTO memberInfoRequestDTO = MemberInfoRequestDTO.builder() + .accounts(member.getGameAccount()) + .agentId(requestDTO.getAgentId()) + .agentKey(requestDTO.getAgentKey()) + .build(); + BigDecimal balance = this.getMemberInfo(memberInfoRequestDTO).getBalance(); + if (balance.compareTo(BigDecimal.ZERO) <= 0) { + throw new ApiException(ErrorCode.INSUFFICIENT_PLAYER_BALANCE.getCode()); + } + + TransferRequest request = new TransferRequest(); + request.setUserName(requestDTO.getAccount()); + request.setTransferType(2); // 转出 + request.setTransferId(requestDTO.getOrderId()); + request.setMerchantCode(requestDTO.getAgentId()); + request.setAmount(/*requestDTO.getAmount().toString()*/ balance.toString()); + request.buildSignature(requestDTO.getAgentKey()); + + TransferResponse response = dbSportsClient + .transferOut( + request, IdUtils.fastUUID() + ); + + //判断是否转移成功 + if (this.isSuccess(response.getCode())) { + BigDecimal transAmount = balance; + BigDecimal beforeAmount = balance; + BigDecimal afterAmount = BigDecimal.ZERO; + + //更新数据 + exchangeMoney.setBalance(transAmount); + exchangeMoney.setCoinBefore(beforeAmount); + exchangeMoney.setCoinAfter(afterAmount); + exchangeMoney.setCurrencyBefore(beforeAmount); + exchangeMoney.setCurrencyAfter(afterAmount); + exchangeMoney.setStatus(StatusType.SUCCESS.getValue()); // SUCCESS + gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney); + } else { + throw new ApiException(ErrorCode.Transfer_Out_Failure.getCode()); + } + } + return exchangeMoney.getId(); + } + + /** + * 获取会员信息 + * + * @param requestDTO 会员信息请求dto + * @return {@link MemberInfoResponseDTO } + */ + @Override + public MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO requestDTO) { + GetMemberInfoRequest request = new GetMemberInfoRequest(); + request.setUserName(requestDTO.getAccounts()); + request.setMerchantCode(requestDTO.getAgentId()); + request.buildSignature(requestDTO.getAgentKey()); + String requestId = IdUtils.fastUUID(); + GetMemberInfoResponse response = dbSportsClient.getMemberInfo(request, requestId); + //判断是否获取成功 + if (this.isSuccess(response.getCode())) { + return MemberInfoResponseDTO.builder() + .status(GameMemberStatus.UNKNOWN.getCode()) + .balance(response.getData().getBalance()) + .account(requestDTO.getAccounts()) + .build(); + } + throw new ApiException(ErrorCode.Get_Member_Info_Failure.getCode()); + } + + /** + * 无重定向登录 + * + * @param requestDTO 游戏登录 + * @return {@link String } + */ + @Override + public String loginWithoutRedirect(GamesLogin requestDTO) { + LoginRequest request = new LoginRequest(); + request.setUserName(requestDTO.getAccount()); + request.setMerchantCode(requestDTO.getAgentId()); + if (requestDTO.getPlatform().equalsIgnoreCase("web")) { + request.setTerminal("pc"); + } else { + request.setTerminal("mobile"); + } + request.setLanguage(requestDTO.getLang()); + request.setCurrency(requestDTO.getCurrency()); + + request.buildSignature(requestDTO.getAgentKey()); + + LoginResponse response = dbSportsClient.login( + request, IdUtils.fastUUID() + ); + + if (this.isSuccess(response.getCode())) { + LoginResponse.LoginRespDTO respDTO = response.getData(); + + String loginURL = respDTO.getLoginUrl(); + if (StringUtils.isEmpty(loginURL)) { + throw new ApiException(ErrorCode.Get_Url_Failure.getCode()); + } + + return loginURL; + } + throw new ApiException(ErrorCode.Get_Url_Failure.getCode()); + } + + /** + * 获取游戏列表 + * + * @param gamesBaseRequestDTO 游戏请求dto + * @return {@link String } + */ + @Transactional + @Override + public String getGameList(GamesBaseRequestDTO gamesBaseRequestDTO) { + + Platform platform = gamesBaseRequestDTO.getVendor(); + Game condition = new Game(); + condition.setPlatformCode(platform.getPlatformCode()); + condition.setPlatformType(PlatformType.SPORTS.getCode()); + List gameList = gameService.selectGameList(condition); + //不存在这个游戏 + if (ObjectUtils.isEmpty(gameList)) { + Game game = new Game(); + game.setId(IdUtil.getSnowflakeNextId()); + game.setSortNo(1); + game.setPlatformCode(platform.getPlatformCode()); + game.setPlatformType(PlatformType.SPORTS.getCode()); + game.setGameCode("1"); + game.setGameSourceType(String.valueOf(1)); + game.setGameName(GamePlatforms.DBSports.getInfo()); + game.setCreateBy(Constants.SYSTEM); + NameInfo nameInfo = new NameInfo(); + nameInfo.setLang("zh-CN"); + nameInfo.setName("DB体育"); + game.setNameInfo(Collections.singletonList(nameInfo)); + gameService.insertGame(game); + } + /*GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID); + if (ObjectUtils.isEmpty(gameName)) { + gameNameService.insertGameName(GameName.builder() + .id(GAME_NAME_ID) + .gameId(game.getId()) + .gameName(game.getGameName()) + .langCode("zh-CN") + .createBy(Constants.SYSTEM) + .build()); + }*/ + + return CacheConstants.DB_Sports; + } + + /** + * 汇兑转移状态 + * + * @param requestDTO 兑换转账请求dto + * @return {@link Boolean } + */ + @Override + public ExchangeTransferStatusResponseDTO exchangeTransferStatus(ExchangeTransferStatusRequestDTO requestDTO) { + + GameExchangeMoney gameExchangeMoney = gameExchangeMoneyService.selectGameExchangeMoneyById(requestDTO.getGameExchangeMoneyId()); + if (null == gameExchangeMoney) { + throw new ApiException(ErrorCode.Transfer_Not_Exist.getCode()); + } + Integer status = StatusType.IN_PROGRESS.getValue(); + + if (!Objects.equals(gameExchangeMoney.getStatus(), StatusType.SUCCESS.getValue())) { + TransferDetailRequest request = new TransferDetailRequest(); + request.setMerchantCode(requestDTO.getAgentId()); + request.setTransferId(gameExchangeMoney.getOrderId()); + request.buildSignature(requestDTO.getAgentKey()); + TransferDetailResponse response = dbSportsClient.transferDetail( + request, IdUtils.fastUUID() + ); + if (this.isSuccess(response.getCode()) && response.getData().getStatus() == 1) { + status = StatusType.SUCCESS.getValue(); + } else { + status = StatusType.FAILURE.getValue(); + } + } + + return ExchangeTransferStatusResponseDTO.builder() + .statusType(status) + .balance(gameExchangeMoney.getBalance()) + .coinBefore(gameExchangeMoney.getCoinBefore()) + .coinAfter(gameExchangeMoney.getCoinAfter()) + .build(); + } + + + /** + * 按时间获取投注记录 + * + * @param requestDTO 按时间dto投注记录 + * @return {@link Boolean } + */ + @Override + public Boolean getBetRecordByTime(BetRecordByTimeDTO requestDTO) { + + this.getRealtimeRecord(requestDTO, 1); + + return Boolean.TRUE; + } + + void getRealtimeRecord(BetRecordByTimeDTO requestDTO, int pageNum) { + + GetBetListRequest request = new GetBetListRequest(); + request.setStartTime(/*String.valueOf(requestDTO.getStartTime())*/ "1744333220000"); + request.setEndTime(/*String.valueOf(requestDTO.getEndTime())*/ "1744335020000"); + request.setMerchantCode(requestDTO.getAgentId()); + request.setPageNum(pageNum); + request.setPageSize(1000); + request.buildSignature(requestDTO.getAgentKey()); + + GetBetListResponse response = dbSportsClient.getBetList( + request, IdUtils.fastUUID() + ); + + if (this.isSuccess(response.getCode())) { + List list = response.getData().getList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + this.batchInsert(list, requestDTO); + getRealtimeRecord(requestDTO, ++pageNum); + } + } + + /** + * 按历史时间获取投注记录 + * + * @param requestDTO 按时间dto投注记录 + * @return {@link Boolean } + */ + @Override + public Boolean getBetRecordByHistoryTime(BetRecordByTimeDTO requestDTO) { + + return Boolean.TRUE; + } + + + /** + * 赠送免费局数 + * + * @param createFreeSpinRequest 创建自由旋转请求 + * @return {@link Boolean } + */ + @Override + public Boolean createFreeSpin(CreateFreeSpinRequestDTO createFreeSpinRequest) { + throw new BaseException("暂不支持免费局数"); + } + + /** + * 获取游戏详细信息 + * + * @param getGameDetailRequestDTO 获取游戏详细信息请求dto + * @return {@link GetGameDetailResponseDTO } + */ + @Override + public GetGameDetailResponseDTO getGameDetail(GetGameDetailRequestDTO getGameDetailRequestDTO) { + throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode()); + } + + /** + * 强制会员从游戏注销 + * + * @param kickMemberRequestDTO 踢会员请求dto + * @return {@link Boolean } + */ + @Override + public Boolean kickMember(KickMemberRequestDTO kickMemberRequestDTO) { + + KickUserRequest request = new KickUserRequest(); + request.setUserName(kickMemberRequestDTO.getAccount()); + request.setMerchantCode(kickMemberRequestDTO.getAgentId()); + request.buildSignature(kickMemberRequestDTO.getAgentKey()); + KickUserResponse kickUserResponse = dbSportsClient.kickUser(request, IdUtils.fastUUID()); + if (this.isSuccess(kickUserResponse.getCode())) { + return Boolean.TRUE; + } + return Boolean.FALSE; + } + + /** + * 踢成员全部 + * + * @param kickMemberAllDTO 踢成员全部dto + * @return {@link Boolean } + */ + @Override + public Boolean kickMemberAll(KickMemberAllDTO kickMemberAllDTO) { + throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode()); + } + + /** + * 免费游戏玩家使用的纪录 + * + * @param getFreeSpinDashflowRequestDTO 获取自由旋转dashflow请求dto + * @return {@link List }<{@link GameFreeRecord }> + */ + @Override + public List getFreeSpinDashflow(GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO) { + throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode()); + } + + /** + * 取消赠送免费局数 + * + * @param cancelFreeSpinRequestDTO 取消免费旋转请求 + * @return {@link Boolean } + */ + @Override + public Boolean cancelFreeSpin(CancelFreeSpinRequestDTO cancelFreeSpinRequestDTO) { + throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode()); + } + + /** + * 游戏演示登录 + * + * @param gameDemoLoginRequestDTO 游戏演示登录请求dto + * @return {@link GameDemoLoginResponseDTO } + */ + @Override + public GameDemoLoginResponseDTO gameDemoLogin(GameDemoLoginRequestDTO gameDemoLoginRequestDTO) { + throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode()); + } + + /** + * 批量插入 + * + * @param settledOrderList 投注记录 + */ + private void batchInsert(List settledOrderList, BetRecordByTimeDTO betRecordByTimeDTO) { + List gameBettingDetails = new ArrayList<>(); + List wagersIds = new ArrayList<>(); + //数据组装 + List dataList = settledOrderList; + if (CollectionUtils.isEmpty(dataList)) { + return; + } + + //数据转化 + for (GetBetListResponse.OrderItemDTO dataBean : dataList) { + if (dataBean.getOrderStatus() != 1) { // 只关心结算的 + continue; + } + GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder() + .platform(betRecordByTimeDTO.getVendor()) + .data(dataBean).build()); + if (!ObjectUtils.isEmpty(bettingDetails)) { + bettingDetails.setId(IdUtil.getSnowflakeNextId()); + gameBettingDetails.add(bettingDetails); + } + wagersIds.add(dataBean.getOrderNo()); + } + if (CollectionUtils.isEmpty(gameBettingDetails)) { + return; + } + //查询重复数据id + List removeWagersIds = gameBettingDetailsService + .selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.DBSports.getCode()); + //用steam流清除list中与wagersIds集合相同的数据 + gameBettingDetails = gameBettingDetails.stream() + .filter(detail -> !removeWagersIds.contains(detail.getWagersId())) + .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(gameBettingDetails)) { + gameBettingDetailsService.batchInsert(gameBettingDetails); + } + } + + /** + * 数据构建 + * + * @param gamesDataBuildDTO 数据 + * @return {@link GameBettingDetails } + */ + @Override + public GameBettingDetails dataBuild(GamesDataBuildDTO gamesDataBuildDTO) { + + //转化类 + GetBetListResponse.OrderItemDTO dataBean = (GetBetListResponse.OrderItemDTO) gamesDataBuildDTO.getData(); + Member member = memberService.selectMemberByGameAccount(dataBean.getUserName()); + if (ObjectUtils.isEmpty(member)) { + return null; + } + //List gameList = redisCache.getCacheList(CacheConstants.DB_Sports); + //Game game = gameList.get(0); + BigDecimal originPayoffAmount = BigDecimal.valueOf(dataBean.getSettleAmount()); + BigDecimal betAmount = new BigDecimal(dataBean.getOrderAmount()); + + int compareResult = originPayoffAmount.compareTo(betAmount); + long payoffTime = dataBean.getSettleTime(); + long createTime = dataBean.getCreateTime(); + Platform platform = gamesDataBuildDTO.getPlatform(); + String systemCurrency = platform.getOurCurrency(dataBean.getCurrency()); + //数据构造 + GameBettingDetails gameBettingDetails = GameBettingDetails.builder() + .tenantKey(member.getTenantKey()) + //保存我们的币种id + .currencyCode(systemCurrency) + .memberId(member.getId()) + .gameCode("1") + .gameType(PlatformType.SPORTS.getCode()) // 体育 + .platformCode(GamePlatforms.DBSports.getCode()) + .gameId(GamePlatforms.DBSports.getCode() + "_1") + .gameName(GamePlatforms.DBSports.getInfo()) + .gameStatus(compareResult > 0 ? GameStatus.WIN.getCode() : compareResult < 0 ? GameStatus.FAIL.getCode() : GameStatus.FLAT.getCode()) + .gameStatusType(1) // 一般下注 + .gameCurrencyCode(dataBean.getCurrency()) + .account(dataBean.getUserName()) + .wagersId(dataBean.getOrderNo()) + .wagersTime(createTime) + .betAmount(betAmount) + .payoffTime(payoffTime) + .payoffAmount(originPayoffAmount.abs()) + .settlementTime(payoffTime) + .turnover(betAmount) + .orderNo(dataBean.getOrderNo()) + .settlementStatus(SettlementStatusEnum.COMPLETED.getCode()) + .build(); + gameBettingDetails.setCreateBy(Constants.SYSTEM); + gameBettingDetails.setCreateTime(DateUtils.getNowDate()); + return gameBettingDetails; + } +} diff --git a/pom.xml b/pom.xml index 1df341d..f39a12d 100644 --- a/pom.xml +++ b/pom.xml @@ -2,13 +2,13 @@ - 4.0.0 + 4.0.0 com.ff ff 0.0.1 - ff + xk-platform FF管理系统 @@ -33,12 +33,37 @@ 4.5.10 3.4.1 3.4.1 + 1.2.3 + 2.3.0 + 1.6.3 + 3.5.2 + 5.8.35 + - + + cn.hutool + hutool-core + ${hutool.version} + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + com.dtflys.forest + forest-spring-boot-starter + ${forest.version} + + + com.xuxueli + xxl-job-core + ${xxl-job.version} + org.springframework @@ -174,18 +199,10 @@ ${zxing.version} - - com.ff - ff-gen - ${ff.version} - - - - - com.ff - ff-base - ${ff.version} + cn.licoy + encrypt-body-spring-boot-starter + ${encrypt.version} @@ -196,18 +213,51 @@ - cn.licoy - encrypt-body-spring-boot-starter - ${encrypt.version} + com.ff + ff-fetcher + ${ff.version} + + com.ff + ff-domain + ${ff.version} + + + + com.ff + comp-redis + ${ff.version} + + + com.ff + xk-client + ${ff.version} + + + com.ff + ff-util + ${ff.version} + + + com.ff + ff-exception + ${ff.version} + ff-game - ff-gen - ff-base + ff-fetcher + ff-bean/ff-domain + ff-bean/comp-redis + ff-bean/xk-client + ff-bean/ff-util + ff-bean/ff-exception + + + ff-platform/xk-dbsports pom diff --git a/sh/linux/build.sh b/sh/linux/build.sh new file mode 100644 index 0000000..2888485 --- /dev/null +++ b/sh/linux/build.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +targetName=xk-admin +basePath=/opt/server/dist/${targetName} + +# 1. 切换项目根目录 +cd "$(dirname "$0")/../.." + +# 2. 切换分支(可选参数) +if [ $# -gt 0 ]; then + echo "切换分支: $1" + git fetch + git checkout $1 +fi + +# 3. 拉取最新代码 +echo "拉取最新代码..." +git pull + +# 4. Maven 构建 +echo "开始打包..." +mvn -Dmaven.test.skip=true clean package + +if [ $? -eq 0 ]; then + echo "打包成功,开始拷贝文件..." + + # 5. 创建目标目录 + mkdir -p ${basePath}/config + mkdir -p ${basePath}/dumps + + # 6. 拷贝构建产物 + cp -v ff-game/target/xk-*.jar ${basePath}/ + + # 7. 拷贝配置文件 + cp -v ff-game/src/main/resources/config/**/*.properties ${basePath}/config/ + cp -v ff-game/src/main/resources/application-prod.properties ${basePath}/ + + # 8. 拷贝启动脚本 + cp ./start.sh ${basePath}/ + + echo "构建并部署完成,路径:${basePath}" + +else + echo "构建失败,请检查构建日志。" + exit 1 +fi diff --git a/sh/linux/create.sh b/sh/linux/create.sh deleted file mode 100644 index 2d0a9c6..0000000 --- a/sh/linux/create.sh +++ /dev/null @@ -1,6 +0,0 @@ -mkdir -p /opt/sever/dist/ff-admin/config -mkdir -p /opt/sever/dist/ff-admin/dumps -cp start.bat /opt/sever/dist/ff-admin/ -cd .. -cd .. -cp ff-admin/src/main/resources/application-prod.yml /opt/sever/dist/ff-admin/config diff --git a/sh/linux/publish.sh b/sh/linux/publish.sh deleted file mode 100644 index 5a1f2e1..0000000 --- a/sh/linux/publish.sh +++ /dev/null @@ -1,15 +0,0 @@ -cd .. -cd .. -if [ $# -gt 0 ]; then - git pull - echo "切换分支$1" - git checkout $1 -fi -git pull -mvn -Dmaven.test.skip=true clean package -if [ $? -eq 0 ]; then - cp ff-game/target/ff-*.jar /opt/gameApi/dist/game-api/ - -else - echo "fail" -fi diff --git a/sh/linux/start-manager-api.sh b/sh/linux/start-manager-api.sh deleted file mode 100644 index 4258a45..0000000 --- a/sh/linux/start-manager-api.sh +++ /dev/null @@ -1,20 +0,0 @@ -export JAVA_HOME=/usr/local/jdk1.8.0_171 -export PATH=$JAVA_HOME/bin:$PATH - -pids=$(jps| grep ff-admin.jar|awk '{print $1}') -for pid in $pids -do - kill -9 $pid -done - - -nohup java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/sever/dist/ff-admin/gc.log \ --XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/sever/dist/ff-admin/dumps \ --XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms1g -Xmx2g -Xmn1g -Xss256k \ --XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 \ --agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \ --jar /opt/sever/dist/ff-admin/ff-admin.jar --spring.profiles.active=prod & - - - - diff --git a/sh/linux/start.sh b/sh/linux/start.sh new file mode 100644 index 0000000..16af22b --- /dev/null +++ b/sh/linux/start.sh @@ -0,0 +1,39 @@ +#!/bin/bash +export JAVA_HOME=/usr/local/jdk1.8.0_171 +export PATH=$JAVA_HOME/bin:$PATH + +targetName=xk-admin + +pids=$(jps| grep ${targetName}.jar|awk '{print $1}') +for pid in $pids +do + kill -9 $pid +done +nohup java \ + -XX:+PrintGCDetails \ + -XX:+PrintGCDateStamps \ + -Xloggc:gc.log \ + -XX:+HeapDumpOnOutOfMemoryError \ + -XX:HeapDumpPath=./dumps \ + -XX:MetaspaceSize=256m \ + -XX:MaxMetaspaceSize=256m \ + -Xms1g \ + -Xmx2g \ + -Xmn1g \ + -Xss256k \ + -XX:SurvivorRatio=8 \ + -XX:+UseG1GC \ + -XX:MaxGCPauseMillis=200 \ + -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7004 \ + -jar ${targetName}.jar \ + --spring.profiles.active=prod & + + + + + + + + + + diff --git a/sh/win/build.bat b/sh/win/build.bat new file mode 100644 index 0000000..ae7501e --- /dev/null +++ b/sh/win/build.bat @@ -0,0 +1,60 @@ +@echo off +setlocal + +set targetName=xk-admin +set basePath=\opt\server\dist\%targetName% +set resourcePath=ff-game\src\main\resources + + +:: 1. 切换到项目根目录(当前脚本所在目录的上两级) +cd /d %~dp0 +cd .. +cd .. + +:: 2. 可选分支切换(如果提供了参数) +if not "%1"=="" ( + echo 切换分支: %1 + git fetch + git checkout %1 +) + +:: 3. 拉取最新代码 +echo 拉取最新代码... +git pull + +:: 4. Maven 构建 +echo 开始打包... +mvn -Dmaven.test.skip=true clean package + +if errorlevel 1 ( + echo 构建失败,请检查构建日志。 + exit /b 1 +) + +:: 5. 创建目标目录 +echo 创建目标目录... +mkdir "%basePath%\config" +mkdir "%basePath%\dumps" + +:: 6. 拷贝构建产物 +echo 拷贝 JAR 包... +for /f %%f in ('dir /b ff-game\target\xk-*.jar') do ( + copy "ff-game\target\%%f" "%basePath%\" +) + +:: 7. 拷贝配置文件 +echo 拷贝配置文件... +rem Copy all .properties files recursively +for /r "%sourcePath%\config" %%f in (*.properties) do ( + copy "%%f" "%targetPath%\" +) +copy "%sourcePath%\application-prod.properties" "%basePath%\" + +:: 8. 拷贝启动脚本 +echo 拷贝启动脚本... +copy ".\start.bat" "%basePath%\" + +echo 构建并部署完成,路径:%basePath% + +endlocal +pause diff --git a/sh/win/create.bat b/sh/win/create.bat deleted file mode 100644 index 4ea2829..0000000 --- a/sh/win/create.bat +++ /dev/null @@ -1,6 +0,0 @@ -mkdir \opt\sever\dist\ff-admin\config -mkdir \opt\sever\dist\ff-admin\dumps -copy start.bat \opt\sever\dist\ff-admin\ -cd .. -cd .. -copy ff-admin\src\main\resources\application-prod.yml \opt\sever\dist\ff-admin\config \ No newline at end of file diff --git a/sh/win/publish.bat b/sh/win/publish.bat deleted file mode 100644 index 4d532c7..0000000 --- a/sh/win/publish.bat +++ /dev/null @@ -1,23 +0,0 @@ -@echo off - -REM 退回到上级目录 -cd .. -cd .. - -set DRIVE=%~d0 - -REM 切换到发布分支 -git checkout prod - -REM 更新代码 -git pull - -REM 执行 Maven 打包命令,跳过测试 -mvn -Dmaven.test.skip=true clean package - - -REM 复制目标文件到 /app/ 目录 - copy ff-admin\target\ff-*.jar D:\opt\sever\dist\ff-admin\ - -REM 防止窗口关闭 -pause diff --git a/sh/win/start.bat b/sh/win/start.bat index c7a9659..1afcb5b 100644 --- a/sh/win/start.bat +++ b/sh/win/start.bat @@ -1,23 +1,31 @@ @echo off +chcp 65001 > nul +set targetName=xk-admin +title %targetName% +echo 当前目录:%CD% - -REM 查找并终止运行中的 ff-admin.jar 进程 -for /f "tokens=1" %%i in ('jps ^| findstr ff-admin.jar') do ( +for /f "tokens=1" %%i in ('jps ^| findstr %targetName%.jar') do ( echo 正在终止进程 ID %%i taskkill /PID %%i /F ) REM 启动新进程 -echo 启动 ff-admin.jar... +echo 启动%targetName%.jar... start /b java ^ - -XX:+PrintGCDetails -XX:+PrintGCDateStamps ^ - -Xloggc:/opt/sever/dist/ff-admin/gc.log ^ - -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/sever/dist/ff-admin/dumps ^ - -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m ^ + -Dfile.encoding=UTF-8 ^ + -XX:+PrintGCDetails ^ + -XX:+PrintGCDateStamps ^ + -Xloggc:gc.log ^ + -XX:+HeapDumpOnOutOfMemoryError ^ + -XX:HeapDumpPath=./dumps ^ + -XX:MetaspaceSize=256m ^ + -XX:MaxMetaspaceSize=256m ^ -Xms1g -Xmx2g -Xmn1g -Xss256k ^ - -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 ^ - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ^ - -jar /opt/sever/dist/ff-admin/ff-admin.jar ^ - --spring.profiles.active=prod ^ + -XX:SurvivorRatio=8 ^ + -XX:+UseG1GC ^ + -XX:MaxGCPauseMillis=200 ^ + -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 ^ + -jar %targetName%.jar --spring.profiles.active=prod +@pause \ No newline at end of file diff --git a/sql/update_liukang.sql b/sql/update_liukang.sql deleted file mode 100644 index e504ccc..0000000 --- a/sql/update_liukang.sql +++ /dev/null @@ -1,903 +0,0 @@ -drop table if exists ff_member; -CREATE TABLE `ff_member` -( - `id` bigint NOT NULL COMMENT '主键id', - `currency_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '币种(字典ff_currency)', - `account_type` tinyint DEFAULT NULL COMMENT '账号类型(0.会员 1.代理)', - `agent_level_id` bigint DEFAULT NULL COMMENT '代理等级id', - `agent_model_id` bigint DEFAULT NULL COMMENT '代理模式id', - `direct_bind_level_id` bigint DEFAULT NULL COMMENT '强制绑定层级id', - `commission_way` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '提佣方式', - `promote_link` varchar(500) DEFAULT NULL COMMENT '推广链接', - `promote_link_visits` int DEFAULT NULL COMMENT '推广链接访问次数', - `promote_status` tinyint DEFAULT NULL COMMENT '推广状态(0.关闭 1.开启)', - `join_time` datetime DEFAULT NULL COMMENT '加入代理时间', - `member_account` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '会员账号', - `real_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '会员姓名', - `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '账号密码', - `avatar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '头像地址', - `withdraw_password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '提现密码', - `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '账号状态(0正常 1手动冻结 2异常冻结 3禁止领取优惠 4禁止提现 5黑名单 6停用 7禁止进入游戏 8自我禁止-限制游戏 9自我禁止-限制参与优惠 10自我禁止-限制登录)', - `vip_id` bigint DEFAULT NULL COMMENT 'vip id', - `level_id` bigint DEFAULT NULL COMMENT '会员层级id', - `label_id` bigint DEFAULT NULL COMMENT '会员标签id', - `agent_id` bigint DEFAULT NULL COMMENT '上级代理id', - `agent_account` varchar(255) DEFAULT NULL COMMENT '上级代理账号', - `channel_id` bigint DEFAULT NULL COMMENT '渠道id', - `registe_way` varchar(10) DEFAULT NULL COMMENT '注册方式(字典ff_registe_way)', - `registe_time` datetime DEFAULT NULL COMMENT '注册时间', - `registe_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '注册IP', - `registe_ip_city` varchar(100) DEFAULT NULL COMMENT '注册ip的城市', - `registe_domain` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '注册域名', - `registe_device_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '注册设备类型(字典ff_device_type)', - `registe_device_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '注册设备号', - `registe_browser` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '注册浏览器信息', - `registe_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '注册链接url', - `registe_fingerprint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '注册浏览器指纹', - `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '男:1 女:2', - `birthday` date DEFAULT NULL COMMENT '生日', - `area_code` varchar(10) DEFAULT NULL COMMENT '手机号区号', - `phone_number` varchar(20) DEFAULT NULL COMMENT '手机号', - `first_charge_amount` decimal(10, 2) DEFAULT NULL COMMENT '首充金额', - `first_charge_time` datetime DEFAULT NULL COMMENT '首充时间', - `last_login_date` datetime DEFAULT NULL COMMENT '上次登录时间', - `last_login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '上次登录IP', - `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', - `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '最后登录IP', - `login_ip_city` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后登录ip的城市', - `login_domain` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '最后登录域名', - `login_device_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后登录设备类型(字典ff_device_type)', - `login_device_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后登录设备号', - `login_browser` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后登录浏览器信息', - `login_fingerprint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后登录浏览器指纹', - `verify_way` varchar(10) DEFAULT NULL COMMENT '验证方式(字典ff_verify_way)', - `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '会员邮箱', - `face_book_account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'facebook账号', - `telegram_account` varchar(50) DEFAULT NULL COMMENT 'telegram账号', - `whatsapp_account` varchar(50) DEFAULT NULL COMMENT 'whatsapp账号', - `zalo_account` varchar(50) DEFAULT NULL COMMENT 'zalo账号', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '会员备注', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员表'; - -ALTER TABLE `ff-admin`.`ff_member_log` - MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - -ALTER TABLE `ff-admin`.`ff_member` - MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - - -DROP TABLE IF EXISTS `ff_payment_channel`; -CREATE TABLE `ff_payment_channel` -( - `id` bigint NOT NULL COMMENT '主键id', - `parent_id` bigint DEFAULT NULL COMMENT '子渠道id 顶级分类该id为0', - `currency_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '币种(字典ff_currency)', - `channel_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '渠道名称', - `channel_icon` varchar(500) DEFAULT NULL COMMENT '大类图标', - `blacklist_status` tinyint DEFAULT NULL COMMENT '充值黑名单状态 0.关闭 1.开启', - `switch_status` tinyint DEFAULT NULL COMMENT '开启状态 0.关闭 1.开启', - `custom_tag` varchar(50) DEFAULT NULL COMMENT '大类角标', - `order_num` int DEFAULT '0' COMMENT '显示顺序', - `level_ids` varchar(500) DEFAULT NULL COMMENT '会员层级ids', - `terminals` varchar(255) DEFAULT NULL COMMENT '终端', - `money_max` decimal(10, 2) DEFAULT NULL COMMENT '最大限额', - `money_min` decimal(10, 2) DEFAULT NULL COMMENT '最小限额', - `commission` decimal(10, 2) DEFAULT NULL COMMENT '手续费率', - `third_channel_product_id` bigint DEFAULT NULL COMMENT '第三方通道产品id', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通道表'; -INSERT INTO `ff-admin`.`ff_payment_channel` (`id`, `parent_id`, `currency_type`, `channel_name`, `channel_icon`, - `blacklist_status`, `switch_status`, `custom_tag`, `order_num`, - `level_ids`, `terminals`, `money_max`, `money_min`, `commission`, - `third_channel_product_id`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (1, 0, NULL, 'Deposit Online', - 'https://zmidh4-1129-ppp.oss-accelerate.aliyuncs.com/siteadmin/pay-icon/icon_cz_zdy.png', 0, 1, '在线存款', 0, - NULL, NULL, NULL, NULL, NULL, NULL, '', NULL, '', NULL, NULL); -INSERT INTO `ff-admin`.`ff_payment_channel` (`id`, `parent_id`, `currency_type`, `channel_name`, `channel_icon`, - `blacklist_status`, `switch_status`, `custom_tag`, `order_num`, - `level_ids`, `terminals`, `money_max`, `money_min`, `commission`, - `third_channel_product_id`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (2, 1, 'INR', 'LSDragon', NULL, NULL, 1, 'LSDragon', 0, '3,4,5', '0,1,2', 50000.00, 100.00, 0.00, 1, 'admin', - '2024-10-25 15:33:14', '', NULL, NULL); - -DROP TABLE IF EXISTS `ff_payment_third_channel`; -CREATE TABLE `ff_payment_third_channel` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', - `currency_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '币种', - `channel_name` varchar(50) DEFAULT NULL COMMENT '渠道名称', - `merch_name` varchar(50) DEFAULT NULL COMMENT '商户名称', - `merch_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商户code', - `merch_id` varchar(50) DEFAULT NULL COMMENT '商户id', - `merch_key` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商户密钥', - `merch_privateKey` varchar(500) DEFAULT NULL COMMENT '商户私钥', - `merch_publicKey` varchar(500) DEFAULT NULL COMMENT '商户公钥', - `notify_url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '三方回调地址(多个用逗号隔开)', - `pay_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '支付下单地址', - `pay_query_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '支付查询地址', - `behalf_pay_url` varchar(500) DEFAULT NULL COMMENT '代付下单地址', - `behalf_query_pay_url` varchar(500) DEFAULT NULL COMMENT '代付查询地址', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='第三方支付渠道表'; -INSERT INTO `ff-admin`.`ff_payment_third_channel` (`id`, `currency_type`, `channel_name`, `merch_name`, `merch_code`, - `merch_id`, `merch_key`, `merch_privateKey`, `merch_publicKey`, - `notify_url`, `pay_url`, `pay_query_url`, `behalf_pay_url`, - `behalf_query_pay_url`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (1, 'INR', 'fypay', 'fypay', 'fypay', '1024', 'kys9s8GvsI727ISML4kZ6Rp', NULL, NULL, NULL, - 'https://fyapi.fypay.online/api/v1/payment/init', 'http://fyapi.fypay.online/api/v1/payment/query', - 'http://fyapi.fypay.online/api/v1/transfer/init', 'http://fyapi.fypay.online/api/v1/transfer/query', 'admin', - '2024-10-25 14:59:35', '', NULL, NULL); - -DROP TABLE IF EXISTS `ff_payment_third_channel_product`; -CREATE TABLE `ff_payment_third_channel_product` -( - `id` bigint NOT NULL COMMENT '主键id', - `third_channel_id` bigint DEFAULT NULL COMMENT '第三方通道id', - `channel_product_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '第三方通道方式code', - `channel_product_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '第三方通道方式名称', - `channel_product_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '第三方通道类型(0.普通 1.刮刮卡 2.网银转账 3.三方充值客服 4.钱包余额快速充值通道 5.银行卡号)', - `money_max` decimal(10, 2) DEFAULT NULL COMMENT '最大限额', - `money_min` decimal(10, 2) DEFAULT NULL COMMENT '最小限额', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='第三方通道产品表'; -INSERT INTO `ff-admin`.`ff_payment_third_channel_product` (`id`, `third_channel_id`, `channel_product_code`, - `channel_product_name`, `channel_product_type`, `money_max`, - `money_min`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (1, 1, '101', 'LSDragon-一类', '0', 50000.00, 100.00, 'admin', '2024-10-25 15:13:11', '', NULL, NULL); - -DELETE -from sys_dict_data -where dict_code BETWEEN 1 and 193; -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, '性别男'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, '性别女'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, '性别未知'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '显示菜单'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '隐藏菜单'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '正常状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '停用状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '正常状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '停用状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '默认分组'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '系统分组'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '系统默认是'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, '系统默认否'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '通知'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '公告'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '正常状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '关闭状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (18, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '其他操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (19, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '新增操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (20, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '修改操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (21, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '删除操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (22, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '授权操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (23, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '导出操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (24, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '导入操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (25, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '强退操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (26, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '生成操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '清空操作'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '正常状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2024-10-09 15:44:02', '', NULL, - '停用状态'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (100, 13, '#2bfa38', '#2bfa38', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', - '2024-10-12 09:34:10', 'admin', '2024-10-14 11:02:16', '绿色'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (101, 11, '#f59a23', '#f59a23', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', - '2024-10-12 09:35:59', 'admin', '2024-10-14 11:03:15', '橙色'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (102, 10, '#db301a', '#db301a', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', - '2024-10-12 09:36:29', 'admin', '2024-10-14 11:03:18', '红色'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (103, 9, '#4d42cf', '#4d42cf', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:37:18', - 'admin', '2024-10-14 11:03:22', '深蓝'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (104, 8, '#1677fd', '#1677fd', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:38:28', - 'admin', '2024-10-14 11:03:27', '淡蓝'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (105, 7, '#000000', '#000000', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:39:11', - 'admin', '2024-10-14 11:03:31', '黑色'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (106, 6, '#4cb5ff', '#4cb5ff', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:40:23', - 'admin', '2024-10-14 11:03:35', '浅蓝'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (107, 5, '#874ce8', '#874ce8', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:41:18', - 'admin', '2024-10-14 11:03:39', '深紫'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (108, 4, '#cd55ff', '#cd55ff', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:41:52', - 'admin', '2024-10-14 11:03:43', '淡紫'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (109, 3, '#26a17b', '#26a17b', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:42:29', - 'admin', '2024-10-14 11:03:47', '墨绿'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (110, 2, '#ea4e3d', '#ea4e3d', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-12 09:43:13', - 'admin', '2024-10-14 11:03:51', '浅红'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (111, 12, '#ff7097', '#ff7097', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', - '2024-10-12 09:44:13', 'admin', '2024-10-14 11:03:08', '粉色 '); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (112, 0, 'USDT', '1', 'ff_currency', NULL, 'default', 'N', '0', 'admin', '2024-10-12 10:55:47', 'admin', - '2024-10-17 16:55:09', 'USDT(USDT)'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (113, 1, 'VND', '2', 'ff_currency', NULL, 'default', 'N', '0', 'admin', '2024-10-12 10:56:28', 'admin', - '2024-10-24 16:10:04', '越南盾(VND1000:1)'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (118, 0, '账号注册', '1', 'ff_registe_way', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:07:55', '', NULL, - '账号注册'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (119, 0, 'FaceBook注册', '2', 'ff_registe_way', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:08:21', '', - NULL, 'FaceBook注册'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (120, 0, 'APP-iOS', 'APP-iOS', 'ff_device_type', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:24:29', - 'admin', '2024-10-15 09:35:10', 'APP-iOS'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (121, 0, 'H5-iOS', 'H5-iOS', 'ff_device_type', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:25:18', - 'admin', '2024-10-15 09:35:17', 'H5-iOS'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (122, 0, 'APP-Android', 'APP-Android', 'ff_device_type', NULL, 'default', 'N', '0', 'admin', - '2024-10-12 16:25:43', 'admin', '2024-10-15 09:35:22', 'APP-Android'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (123, 0, 'H5-Android', 'H5-Android', 'ff_device_type', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:26:09', - 'admin', '2024-10-15 09:35:27', 'H5-Android'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (124, 0, 'PC-Windows', 'PC-Windows', 'ff_device_type', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:26:41', - 'admin', '2024-10-15 09:35:33', 'PC-Windows'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (125, 0, 'PC-Mac', 'PC-Mac', 'ff_device_type', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:27:06', - 'admin', '2024-10-15 09:35:38', 'PC-Mac'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (126, 0, '无验证', '1', 'ff_verify_way', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:42:17', '', NULL, - NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (127, 0, '短信验证', '2', 'ff_verify_way', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:42:31', '', NULL, - NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (128, 0, '谷歌验证', '3', 'ff_verify_way', NULL, 'default', 'N', '0', 'admin', '2024-10-12 16:42:43', '', NULL, - NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (130, 1, '无图标', 'NO_ICON', 'ff_member_label_icon', NULL, 'default', 'N', '0', 'admin', '2024-10-14 11:04:21', - 'admin', '2024-10-14 11:04:26', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (131, 1, 'color1', '1', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:25:07', 'admin', - '2024-10-14 15:51:18', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (132, 2, 'color2', '2', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:26:03', 'admin', - '2024-10-14 15:51:30', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (133, 3, 'color3', '3', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:26:37', 'admin', - '2024-10-14 15:51:40', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (134, 4, 'color4', '4', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:27:26', 'admin', - '2024-10-14 15:51:49', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (135, 5, 'color5', '5', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:28:09', 'admin', - '2024-10-14 15:51:58', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (136, 6, 'color6', '6', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:29:18', 'admin', - '2024-10-14 15:52:06', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (137, 7, 'color7', '7', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:39:22', 'admin', - '2024-10-14 15:52:13', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (138, 8, 'color8', '8', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:39:50', 'admin', - '2024-10-14 15:52:33', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (139, 9, 'color9', '9', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:40:45', 'admin', - '2024-10-14 15:52:42', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (140, 10, 'color10', '10', 'ff_vip_icon_color', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:41:05', - 'admin', '2024-10-14 15:52:53', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (141, 0, 'style_0', '0', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:42:52', 'admin', - '2024-10-14 15:49:54', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (142, 1, 'style_1', '1', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:43:25', 'admin', - '2024-10-14 15:49:59', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (143, 2, 'style_2', '2', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:44:15', 'admin', - '2024-10-14 15:50:04', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (144, 3, 'style_3', '3', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:44:32', 'admin', - '2024-10-14 15:50:08', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (145, 4, 'style_4', '4', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:45:13', 'admin', - '2024-10-14 15:50:12', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (146, 5, 'style_5', '5', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:45:33', 'admin', - '2024-10-14 15:50:16', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (147, 6, 'style_6', '6', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:46:39', 'admin', - '2024-10-14 15:50:20', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (148, 7, 'style_7', '7', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:46:59', 'admin', - '2024-10-14 15:50:25', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (149, 8, 'style_8', '8', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:48:13', 'admin', - '2024-10-14 15:50:30', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (150, 9, 'style_9', '9', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:48:30', 'admin', - '2024-10-14 15:50:35', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (151, 10, 'style_10', '10', 'ff_vip_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 13:48:48', - 'admin', '2024-10-19 09:55:39', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (152, 1, 'style1', '1', 'ff_vip_icon_parent_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 15:48:20', - '', NULL, NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (153, 2, 'style2', '2', 'ff_vip_icon_parent_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 15:48:38', - '', NULL, NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (154, 3, 'style3', '3', 'ff_vip_icon_parent_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 15:48:50', - '', NULL, NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (155, 4, 'style4', '4', 'ff_vip_icon_parent_style', NULL, 'default', 'N', '0', 'admin', '2024-10-14 15:49:01', - '', NULL, NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (156, 0, '姓名', '0', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:42:38', 'admin', - '2024-10-23 13:19:01', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (157, 1, '手机号', '1', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:43:10', 'admin', - '2024-10-23 13:19:05', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (158, 2, '账号状态', '2', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:44:34', - 'admin', '2024-10-23 13:19:12', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (159, 3, '银行卡', '3', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:45:08', 'admin', - '2024-10-23 13:19:19', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (160, 4, '账号密码', '4', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:46:13', - 'admin', '2024-10-23 13:19:25', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (161, 5, '忘记密码', '5', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:48:37', - 'admin', '2024-10-23 13:19:30', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (162, 6, '提现密码', '6', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:49:06', - 'admin', '2024-10-23 13:19:36', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (163, 7, 'WhatsApp', '7', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:50:30', - 'admin', '2024-10-23 13:19:40', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (164, 8, 'Facebook', '8', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:50:57', - 'admin', '2024-10-23 13:19:44', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (165, 9, 'Telegram', '9', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:51:20', - 'admin', '2024-10-23 13:19:48', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (166, 10, 'Zalo', '10', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:51:40', 'admin', - '2024-10-23 13:19:56', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (167, 11, '邮箱地址', '11', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:52:30', - 'admin', '2024-10-23 13:19:59', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (168, 12, '手势密码', '12', 'ff_log_operproject', '', 'default', 'N', '0', 'admin', '2024-10-15 09:52:54', - 'admin', '2024-10-23 13:20:07', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (169, 13, '谷歌验证', '13', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:53:19', - 'admin', '2024-10-23 13:20:14', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (170, 14, '密保问题', '14', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:53:55', - 'admin', '2024-10-23 13:20:19', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (171, 15, '会员层级', '15', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:54:29', - 'admin', '2024-10-23 13:20:25', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (172, 16, '上级代理', '16', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:55:06', - 'admin', '2024-10-23 13:20:30', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (173, 17, '登录', '17', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:55:25', 'admin', - '2024-10-23 13:20:41', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (174, 18, '登出', '18', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:55:37', 'admin', - '2024-10-23 13:20:46', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (175, 19, 'VIP等级', '19', 'ff_log_operproject', NULL, 'default', 'N', '0', 'admin', '2024-10-15 09:56:18', - 'admin', '2024-10-23 13:20:51', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (176, 0, '无', '0', 'ff_oper_type', NULL, 'default', 'N', '0', 'admin', '2024-10-15 10:11:57', 'admin', - '2024-10-23 14:54:38', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (177, 1, '新增', '1', 'ff_oper_type', NULL, 'default', 'N', '0', 'admin', '2024-10-15 10:12:11', 'admin', - '2024-10-23 14:54:42', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (178, 2, '修改', '2', 'ff_oper_type', NULL, 'default', 'N', '0', 'admin', '2024-10-15 10:12:19', 'admin', - '2024-10-23 14:54:46', NULL); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (179, 0, '资金切换', '0', 'ff_account_change_type', NULL, 'primary', 'N', '0', 'admin', '2024-10-18 13:06:45', - 'admin', '2024-10-18 13:07:14', '资金切换'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (180, 1, '会员充值', '1', 'ff_account_change_type', NULL, 'success', 'N', '0', 'admin', '2024-10-18 13:07:08', - 'admin', '2024-10-18 13:07:18', '会员充值'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (181, 2, '会员提现', '2', 'ff_account_change_type', NULL, 'info', 'N', '0', 'admin', '2024-10-18 13:07:39', '', - NULL, '会员提现'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (182, 3, '银商结算', '3', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:08:22', - '', NULL, '银商结算'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (183, 4, '资金修正', '4', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:08:38', - 'admin', '2024-10-18 13:17:05', '资金修正'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (184, 5, '活动', '5', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:09:03', '', - NULL, '活动'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (185, 6, '返水', '6', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:09:30', - 'admin', '2024-10-18 13:09:43', '返水'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (186, 7, '返佣', '7', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:10:02', '', - NULL, '返佣'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (187, 8, '任务', '8', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:10:31', - 'admin', '2024-10-18 13:10:37', '任务'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (188, 9, 'VIP奖励', '9', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:11:12', '', - NULL, 'VIP奖励'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (189, 10, '充值优惠', '10', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:11:31', - '', NULL, '充值优惠'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (190, 11, '俱乐部', '11', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:11:48', - 'admin', '2024-10-18 13:11:52', '俱乐部'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (191, 12, '奖励', '12', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:12:07', '', - NULL, '奖励'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (192, 13, '公积金', '13', 'ff_account_change_type', NULL, 'default', 'N', '0', 'admin', '2024-10-18 13:12:21', - '', NULL, '公积金'); -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (193, 2, 'INR', '3', 'ff_currency', NULL, 'default', 'N', '0', 'admin', '2024-10-24 16:09:59', '', NULL, NULL); - - -DROP TABLE IF EXISTS `ff_member_vip_setup`; -CREATE TABLE `ff_member_vip_setup` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', - `keep_grade` tinyint DEFAULT NULL COMMENT '保级开关(0.关闭 1.开启)', - `reward_switch` tinyint DEFAULT NULL COMMENT '奖励开关(0.关闭 1.开启)', - `day_draw_time` tinyint DEFAULT NULL COMMENT '每日领取时间(0.次日 1.实时 2.每日)', - `day_draw_start_time` time DEFAULT NULL COMMENT '每日领取开始时间', - `day_draw_end_time` time DEFAULT NULL COMMENT '每日领取结束时间', - `day_repeat_draw` tinyint DEFAULT NULL COMMENT '每日晋级时是否重复领取(0.可重复领取(含跨级部分) 1.只能领取最高一档)', - `week_draw_time` tinyint DEFAULT NULL COMMENT '每周领取时间(0.次日 1.下周 2.实时 3.每周)', - `week_day` tinyint DEFAULT NULL COMMENT '每周第几日', - `week_draw_start_time` time DEFAULT NULL COMMENT '每周领取开始时间', - `week_draw_end_time` time DEFAULT NULL COMMENT '每周领取结束时间', - `week_repeat_draw` tinyint DEFAULT NULL COMMENT '每周晋级时是否重复领取(0.可重复领取(含跨级部分) 1.只能领取最高一档)', - `month_draw_time` tinyint DEFAULT NULL COMMENT '每月领取时间(0.次日 1.下月 2.实时 3.每月)', - `month_day` tinyint DEFAULT NULL COMMENT '每月第几日', - `month_draw_start_time` time DEFAULT NULL COMMENT '每月领取开始时间', - `month_draw_end_time` time DEFAULT NULL COMMENT '每月领取结束时间', - `month_repeat_draw` tinyint DEFAULT NULL COMMENT '每月晋级时是否重复领取(0.可重复领取(含跨级部分) 1.只能领取最高一档)', - `expire_reward_day` int DEFAULT NULL COMMENT '奖励领取过期天数', - `distribute_way` tinyint DEFAULT NULL COMMENT '派发方式(0.玩家自领(过期自动到账) 1.玩家自领(过期自动作废))', - `common_draw_time` tinyint DEFAULT NULL COMMENT '公共领取时间(0.次日 1.实时 2.每日)', - `common_draw_start_time` time DEFAULT NULL COMMENT '公共领取开始时间', - `common_draw_end_time` time DEFAULT NULL COMMENT '公共领取结束时间', - `common_repeat_draw` tinyint DEFAULT NULL COMMENT '公共晋级时是否重复领取(0.可重复领取(含跨级部分) 1.只能领取最高一档)', - `prohibit_level` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin DEFAULT NULL COMMENT '禁止参与层级(黑名单)', - `audit_multiple` decimal(10, 2) DEFAULT NULL COMMENT '稽核倍数(玩家需要达到稽核倍数的流水,才能提现)', - `appoint_platform` tinyint DEFAULT NULL COMMENT '奖金稽核指定平台(0.不限制 1.仅限以下勾选平台)', - `audit_platfrom_ids` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '稽核指定平台ids', - `vip_icon` varchar(10) DEFAULT NULL COMMENT '图标样式', - `rule_type` tinyint DEFAULT NULL COMMENT '规则类型 0.自定义 1.系统翻译', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '规则说明', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员vip等级公共设置表'; - -INSERT INTO `ff-admin`.`ff_member_vip_setup` (`id`, `keep_grade`, `reward_switch`, `day_draw_time`, - `day_draw_start_time`, `day_draw_end_time`, `day_repeat_draw`, - `week_draw_time`, `week_day`, `week_draw_start_time`, - `week_draw_end_time`, `week_repeat_draw`, `month_draw_time`, `month_day`, - `month_draw_start_time`, `month_draw_end_time`, `month_repeat_draw`, - `expire_reward_day`, `distribute_way`, `common_draw_time`, - `common_draw_start_time`, `common_draw_end_time`, `common_repeat_draw`, - `prohibit_level`, `audit_multiple`, `appoint_platform`, - `audit_platfrom_ids`, `vip_icon`, `rule_type`, `create_by`, `create_time`, - `update_by`, `update_time`, `remark`) -VALUES (1, 0, 1, 1, '00:00:00', NULL, 0, 3, 3, '00:00:00', NULL, 0, 5, 16, '00:00:00', NULL, 0, 30, 1, 1, '00:00:00', - NULL, 0, '4,5,3', 1.00, 0, NULL, '3', 1, 'admin', '2024-10-16 10:03:20', 'admin', '2024-10-25 10:22:25', - '1.晋级标准:满足VIP晋级要求(即充值或有效投注都满足条件),即可晋级相应VIP等级,获得相应晋级奖金,如连续晋级多级,可获得全部等级晋级奖金,奖金实时可领取;\n2.日俸禄:每日充值及有效投注满足当前等级日俸禄要求,可获得对应日俸禄奖金,如连续晋级多级,可获得全部等级日俸禄奖金,奖金实时可领取;\n3.周俸禄:每周充值及有效投注满足当前等级周俸禄要求,可获得对应周俸禄奖金,如连续晋级多级,可获得全部等级周俸禄奖金,奖金实时可领取;\n4.月俸禄:每月充值及有效投注满足当前等级月俸禄要求,可获得对应月俸禄奖金,如连续晋级多级,可获得全部等级月俸禄奖金,奖金实时可领取;\n5.奖励过期时间:获得的奖金仅保留30天,期间内未主动领取,则过期作废,例如:1月1日获得奖励,保留30天,则1月32日 00:00:00过期作废;\n6.稽核说明:VIP所赠送的奖金需1倍流水(即稽核、打码或有效投注)才能提现,打码不限游戏平台;\n7.活动声明:本功能仅限账号本人进行正常游戏投注,禁止租借账号、无风险投注(对赌、对刷、低赔刷水)、恶意套利、使用外挂程式、机器人、利用协议、漏洞、接口、群控或其他技术手段参与,一经查核属实,本平台有权终止会员登录、暂停会员使用网站、及没收奖金和不当盈利的权利,无需特别通知;\n8.解释说明:会员领取VIP奖励时,本平台将默认会员同意且遵守对应条件等相关规定,为避免文字理解歧义,本平台保有本活动最终解释权。'); - -INSERT INTO `ff-admin`.`sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, - `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, - `update_time`, `remark`) -VALUES (10024, 3, '后台添加', '3', 'ff_registe_way', NULL, 'default', 'N', '0', 'admin', '2024-10-30 09:18:13', 'admin', - '2024-10-30 09:18:35', '后台添加'); - -ALTER TABLE `ff-admin`.`ff_member` - ADD COLUMN `status_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '会员状态备注' AFTER `remark`; - -ALTER TABLE `ff-admin`.`ff_member_account` - MODIFY COLUMN `balance` decimal (16, 2) NULL DEFAULT 0.00 COMMENT '余额' AFTER `currency_type`, - MODIFY COLUMN `block_balance` decimal (16, 2) NULL DEFAULT 0.00 COMMENT '冻结余额' AFTER `balance`; - -ALTER TABLE `ff-admin`.`ff_member_account_detail` - MODIFY COLUMN `change_amount` decimal (16, 2) NULL DEFAULT NULL COMMENT '变动金额' AFTER `change_small_type`, - MODIFY COLUMN `before_amount` decimal (16, 2) NULL DEFAULT NULL COMMENT '变动前余额' AFTER `change_amount`, - MODIFY COLUMN `after_amount` decimal (16, 2) NULL DEFAULT NULL COMMENT '变动后余额' AFTER `before_amount`; - -DROP TABLE IF EXISTS `ff_payment_channel`; -CREATE TABLE `ff_payment_channel` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', - `parent_id` bigint DEFAULT NULL COMMENT '子渠道id 顶级分类该id为0', - `currency_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '币种(字典ff_currency)', - `channel_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '渠道名称', - `channel_icon` varchar(500) DEFAULT NULL COMMENT '大类图标', - `blacklist_status` tinyint DEFAULT NULL COMMENT '充值黑名单状态 0.关闭 1.开启', - `switch_status` tinyint DEFAULT NULL COMMENT '开启状态 0.关闭 1.开启', - `custom_tag` varchar(50) DEFAULT NULL COMMENT '大类角标', - `order_num` int DEFAULT '0' COMMENT '显示顺序', - `level_ids` varchar(500) DEFAULT NULL COMMENT '会员层级ids', - `terminals` varchar(255) DEFAULT NULL COMMENT '终端', - `money_max` decimal(16, 2) DEFAULT NULL COMMENT '最大限额', - `money_min` decimal(16, 2) DEFAULT NULL COMMENT '最小限额', - `commission` decimal(16, 2) DEFAULT NULL COMMENT '手续费率', - `third_channel_product_id` bigint DEFAULT NULL COMMENT '第三方通道产品id', - `deduce_rate_type` tinyint DEFAULT NULL COMMENT '赠送比例类型 0.不区分层级 1.区分会员层级', - `deduce_limit` decimal(16, 2) DEFAULT NULL COMMENT '赠送金额上限', - `deduce_count_type` tinyint DEFAULT NULL COMMENT '赠送次数类型 0.每日赠送上限次数 1.总共赠送上限次数', - `deduce_count` int DEFAULT NULL COMMENT '赠送次数', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通道表'; - -CREATE TABLE `ff_payment_channel_charge_rate` -( - `id` bigint NOT NULL COMMENT '主键id', - `channel_id` bigint DEFAULT NULL COMMENT '通道id', - `level_id` bigint DEFAULT NULL COMMENT '会员层级id', - `deduce_limit` decimal(16, 2) DEFAULT NULL COMMENT '赠送金额上限', - `deduce_count_type` tinyint DEFAULT NULL COMMENT '赠送次数类型 0.每日赠送上限次数 1.总共赠送上限次数', - `deduce_count` int DEFAULT NULL COMMENT '赠送次数', - `min_amount` decimal(16, 2) DEFAULT NULL COMMENT '最小金额', - `max_amount` decimal(16, 2) DEFAULT NULL COMMENT '最大金额', - `charge_rate` decimal(16, 2) DEFAULT NULL COMMENT '赠送比例', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通道充值赠送配置表'; - -CREATE TABLE `ff_payment_channel_reduce` -( - `id` bigint NOT NULL COMMENT '主键id', - `channel_id` bigint DEFAULT NULL COMMENT '通道id', - `pay_count` int DEFAULT NULL COMMENT '限前充值多少次', - `pay_amount` decimal(16, 2) DEFAULT NULL COMMENT '单笔金额小于此金额,才减免手续费', - `reduce_rate` decimal(16, 2) DEFAULT NULL COMMENT '减免百分比', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通道手续费减免配置'; - -ALTER TABLE `ff-admin`.`ff_payment_channel` - ADD COLUMN `recommend_amount` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '推荐金额,逗号分割' AFTER `deduce_count`; - -ALTER TABLE `ff-admin`.`ff_payment_channel` - ADD COLUMN `merch_name` varchar(50) NULL COMMENT '所属商户名称' AFTER `currency_type`; - diff --git a/sql/update_shi.sql b/sql/update_shi.sql deleted file mode 100644 index 5e17178..0000000 --- a/sql/update_shi.sql +++ /dev/null @@ -1,422 +0,0 @@ -DROP TABLE IF EXISTS ff_game; -DROP TABLE IF EXISTS ff_game_betting_details; -DROP TABLE IF EXISTS ff_game_category; -DROP TABLE IF EXISTS ff_game_category_rows; -DROP TABLE IF EXISTS ff_game_exchange_money; -DROP TABLE IF EXISTS ff_game_kill_rate; -DROP TABLE IF EXISTS ff_game_platform; -DROP TABLE IF EXISTS ff_game_platform_currency; -DROP TABLE IF EXISTS ff_game_pool; - --- auto-generated definition -create table ff_game -( - id bigint auto_increment comment '主键id' - primary key, - sort_no int default 0 null comment '排序', - platform_id bigint null comment '游戏平台id', - game_code int null comment '游戏第三方id', - game_type bigint null comment '游戏类型 ff_game_type 字典', - game_name varchar(50) not null comment '游戏名称', - popular_one tinyint default 2 null comment '热门1 热门 1 开启 2关闭 ', - popular_two tinyint default 2 null comment '热门2 热门 1 开启 2关闭', - recommended_status tinyint default 2 null comment '推荐角标 1 开启 2关闭', - stop_status tinyint default 2 null comment '维护开关 维护状态 1 开启 2关闭', - game_status tinyint default 2 null comment '游戏开关 平台开关状态 1 开启 2关闭', - game_icon varchar(500) null comment '子游戏icon', - icon_style tinyint default 1 null comment '宣传图样式 1 默认 2 自定义 ', - game_logo varchar(500) null comment '品牌logo', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '平台子游戏管理' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_betting_details -( - id bigint auto_increment comment '主键id' - primary key, - currency_code varchar(50) null comment '币种编码', - member_id bigint not null comment '会员id', - game_code int null comment '游戏id ', - game_id bigint null comment '游戏id', - game_type bigint null comment '游戏类型 ff_game_type 字典', - platform_code varchar(50) null comment '游戏平台 ', - game_name varchar(50) null comment '游戏名称', - game_status tinyint null comment '注单状态 1: 赢 2: 输 3: 平局', - game_status_type tinyint null comment '注单类型', - game_currency_code varchar(50) null comment '游戏币种类型', - account varchar(100) null comment '游戏账号', - wagers_id bigint null comment '游戏注单唯一值', - wagers_time datetime null comment '投注时间', - bet_amount decimal(16, 2) default 0.0000 null comment '投注金额', - payoff_time datetime null comment '派彩时间', - payoff_amount decimal(16, 2) default 0.0000 null comment '派彩金额', - settlement_time datetime null comment '对帐时间', - turnover decimal(16, 2) default 0.0000 null comment '有效投注金额 ※注 1', - order_no varchar(64) null comment '订单id', - settlement_status tinyint default 2 null comment '结算状态 1 未结算 2已结算 3 已撤单', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '会员投注细目表' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_category -( - id bigint auto_increment comment '主键id' - primary key, - sort_no int default 0 null comment '排序', - category_name varchar(50) null comment '类型名称', - category_switch tinyint default 2 null comment '类型开关 1开启 2关闭', - open_type tinyint default 1 null comment '打开方式 1 内嵌 2 外链', - open_url varchar(250) null comment '链接访问地址', - open_url_type tinyint default 1 null comment '链接类型 ff_open_url_type字典', - icon_url varchar(500) null comment 'icon访问路径', - remark varchar(250) null comment '备注', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '游戏类型管理' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_category_rows -( - id bigint auto_increment comment '主键id' - primary key, - game_category_id bigint default 0 null comment '游戏类型管理id', - currency_code varchar(50) null comment '币种编码', - h5_index_rows int null comment '首页显示行数', - h5_level_rows int null comment '首页二级页面显示行数', - remark varchar(250) null comment '备注', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '游戏类型币种行数管理' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_exchange_money -( - id bigint auto_increment comment '主键id' - primary key, - currency_code varchar(50) null comment '币种编码', - transactionId varchar(64) null comment '交易id', - member_id bigint not null comment '会员id', - platform_code varchar(50) null comment '游戏平台 ', - platform_id bigint null comment '平台id', - balance decimal(16, 2) null comment '操作金额', - coin_before decimal(16, 2) null comment ' 转账前金额(游戏币)', - coin_after decimal(16, 2) null comment '转账后金额(游戏币)', - currency_before decimal(16, 2) null comment '转账前金额(指定货币)', - currency_after decimal(16, 2) null comment '转账后金额(指定货币)', - exchange_type tinyint null comment '转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商', - status tinyint null comment '状态 1 成功 2失败', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '会员金额转移记录' row_format = DYNAMIC; - - - --- auto-generated definition -create table ff_game_kill_rate -( - id bigint auto_increment comment '主键id' - primary key, - currency_code varchar(50) null comment '币种编码', - line_name varchar(256) null comment '线路名称', - line_id varchar(256) null comment '线路id', - sub_line_id varchar(256) null comment '子线路id', - game_id bigint null comment '游戏id', - kill_rate decimal(16, 2) null comment '游戏杀率 ff_kill_rate', - remark varchar(256) null comment '备注', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '原生游戏杀率' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_platform -( - id bigint auto_increment comment '主键id' - primary key, - sort_no int default 0 null comment '排序', - platform_code varchar(50) null comment '平台编码', - platform_type bigint default 1 null comment '平台类型 ff_game_type 字典', - platform_name varchar(50) null comment '平台名称', - popular_one tinyint default 2 null comment '热门1 热门 1 开启 2关闭 ', - popular_two tinyint default 2 null comment '热门2 热门 1 开启 2关闭', - stop_status tinyint default 2 null comment '维护开关 维护状态 1 开启 2关闭', - platform_status tinyint default 2 null comment '平台开关 平台开关状态 1 开启 2关闭', - game_count int null comment '游戏数量', - ios_jump tinyint default 1 null comment 'ios跳转方式 1 内嵌 2 外链', - android_jump tinyint default 1 null comment 'android跳转方式 1 内嵌 2 外链 jump_type字典', - h5_jump tinyint default 1 null comment 'H5跳转方式 1 内嵌 2 外链', - platform_logo varchar(500) null comment '品牌logo', - promotional_style tinyint default 1 null comment '宣传图样式 1 默认 2 自定义 ', - promotional_image varchar(500) null comment '宣传图', - popular_style varchar(500) null comment '热门图预览', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '平台管理' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_platform_currency -( - id bigint auto_increment comment '主键id' - primary key, - game_platform_id bigint null comment '平台管理id', - currency_code varchar(50) null comment '币种编码', - min_amount decimal(16, 2) default 0.0000 null comment '最低入场金额', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '平台币种管理' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_pool -( - id bigint auto_increment comment '主键id' - primary key, - currency_code varchar(50) null comment '币种编码', - display_format tinyint null comment '展示形式 1独立模块 2多个轮播 ff_display_format', - turn_pool tinyint null comment '彩金池轮播 1新轮播 ff_turn_pool', - turn_name varchar(50) null comment '轮播名称', - display_location tinyint null comment '展示位置 ff_display_location', - click_location tinyint null comment '点击跳转位置 ff_click_location', - click_url varchar(500) null comment '点击跳转位置外部链接地址', - max_display_amount decimal(16, 2) null comment '最大展示金额', - min_display_amount decimal(16, 2) null comment '最小展示金额', - number_places tinyint null comment '小数点位数 0-2', - amount_state tinyint null comment '金额数字选择 1 默认 2自定义 ff_amount_state ', - amount_style tinyint null comment '金额数字样式 ff_amount_style', - amount_typeface tinyint null comment '金额数字字体 ff_amount_typeface ', - amount_typeface_size int null comment '金额数字大小 ', - amount_typeface_colour varchar(50) null comment '金额数字颜色 ', - amount_frame_size varchar(50) null comment '金额数字边框样式 ', - background_state tinyint null comment '背景风格 ff_background_state ', - background_style_url varchar(500) null comment '背景风格地址 ', - state tinyint null comment '状态', - remark varchar(256) null comment '备注', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '虚拟彩金池' row_format = DYNAMIC; --- auto-generated definition -create table ff_game_collection -( - id bigint auto_increment comment '主键id' - primary key, - member_id bigint not null comment '用户id', - game_id bigint not null comment '游戏id', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '平台游戏收藏' row_format = DYNAMIC; - --- auto-generated definition -create table ff_game_play_history -( - id bigint auto_increment comment '主键id' - primary key, - member_id bigint not null comment '用户id', - game_id bigint not null comment '游戏id', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '游戏访问历史管理' row_format = DYNAMIC; - - - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5000, 0, '电子', '1', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:39:09', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5001, 1, '棋牌', '2', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:39:16', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5002, 2, '真人', '3', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:39:28', 'admin', '2024-10-23 06:18:07', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5003, 3, '捕鱼', '4', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:39:34', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5004, 4, '彩票', '5', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:39:42', 'admin', '2024-10-23 06:17:56', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5005, 5, '体育', '6', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 06:18:33', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5006, 6, '斗鸡', '7', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 06:18:50', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5007, 7, '电竞', '8', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 06:19:03', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5008, 8, '彩票', '9', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 06:19:15', 'admin', '2024-10-23 06:19:21', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5009, 9, '区块链', '10', 'ff_game_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 06:19:30', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5010, 0, '未结算', '1', 'ff_settlement_status', NULL, 'default', 'N', '0', 'admin', '2024-10-23 07:18:14', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5011, 1, '已结算', '2', 'ff_settlement_status', NULL, 'default', 'N', '0', 'admin', '2024-10-23 07:18:23', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5012, 2, '已撤单', '3', 'ff_settlement_status', NULL, 'default', 'N', '0', 'admin', '2024-10-23 07:18:33', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5013, 0, 'JILI', 'JILI', 'ff_game_platform', NULL, 'default', 'N', '0', 'admin', '2024-10-23 07:22:49', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5014, 0, '开启', '1', 'ff_popular_one', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:22:40', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5015, 1, '关闭', '2', 'ff_popular_one', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:22:48', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5016, 0, '开启', '1', 'ff_recommended_status', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:23:52', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5017, 1, '关闭', '2', 'ff_recommended_status', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:24:03', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5018, 0, '开启', '1', 'ff_stop_status', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:25:01', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5019, 1, '关闭', '2', 'ff_stop_status', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:25:11', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5020, 0, '开启', '1', 'ff_platform_status', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:25:48', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5021, 1, '关闭', '2', 'ff_platform_status', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:25:56', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5022, 0, '默认', '1', 'ff_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:26:52', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5023, 1, '自定义', '2', 'ff_icon_style', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:27:00', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5024, 0, '内嵌', '1', 'jump_type', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:30:51', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5025, 1, '外链', '2', 'jump_type', NULL, 'default', 'N', '0', 'admin', '2024-10-24 07:30:57', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5026, 0, '外部链接', '1', 'ff_open_url_type', NULL, 'default', 'N', '0', 'admin', '2024-10-25 08:46:49', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5027, 1, '分享再赠送', '2', 'ff_open_url_type', NULL, 'default', 'N', '0', 'admin', '2024-10-25 08:47:02', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5028, 0, '独立模块', '1', 'ff_display_format', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:28:28', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5029, 1, '多个轮播', '2', 'ff_display_format', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:28:38', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5031, 0, '新轮播', '1', 'ff_turn_pool', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:31:42', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5032, 2, '电子', '1', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:34:04', 'admin', '2024-10-28 05:34:22', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5033, 3, '棋牌', '2', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:34:37', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5034, 5, '真人', '3', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:34:49', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5035, 4, '捕鱼', '4', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:35:02', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5036, 6, '彩票', '5', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:35:14', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5037, 7, '体育', '6', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:35:24', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5038, 8, '斗鸡', '7', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:35:38', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5039, 9, '电竞', '8', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:35:50', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5040, 10, '彩票', '9', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:36:01', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5041, 11, '区块链', '10', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:36:10', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5042, 1, '热门', '11', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:36:20', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5043, 12, '试玩', '12', 'ff_display_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:36:29', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5044, 0, '每周任务', '-1', 'ff_click_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:47:28', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5045, 1, '新人福利', '-2', 'ff_click_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:47:37', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5046, 2, '神秘任务', '-3', 'ff_click_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:47:51', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5047, 3, '每日任务', '-4', 'ff_click_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:48:04', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5048, 4, '任务活跃度', '-5', 'ff_click_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:48:19', 'admin', '2024-10-28 05:48:22', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5049, 5, '外部链接', '-6', 'ff_click_location', NULL, 'default', 'N', '0', 'admin', '2024-10-28 05:48:36', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5050, 0, '默认', '1', 'ff_amount_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:03:03', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5051, 1, '自定义', '2', 'ff_amount_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:03:16', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5052, 0, '样式一', '1', 'ff_amount_style', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:05:15', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5053, 1, '样式二', '2', 'ff_amount_style', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:05:24', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5054, 2, '样式三', '3', 'ff_amount_style', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:05:31', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5055, 3, '样式四', '4', 'ff_amount_style', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:05:37', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5056, 4, '样式五', '5', 'ff_amount_style', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:05:43', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5057, 5, '样式六', '6', 'ff_amount_style', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:05:53', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5058, 0, 'Avenir', '1', 'ff_amount_typeface', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:07:23', 'admin', '2024-10-28 06:07:33', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5059, 1, 'EncodeBold', '2', 'ff_amount_typeface', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:07:47', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5060, 2, 'Irr3v', '3', 'ff_amount_typeface', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:07:58', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5061, 3, 'Motel', '4', 'ff_amount_typeface', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:08:07', 'admin', '2024-10-28 06:08:16', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5062, 4, 'Ravenna', '5', 'ff_amount_typeface', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:11:34', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5063, 0, '样式一', '1', 'ff_background_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:15:09', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5064, 1, '样式二', '2', 'ff_background_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:15:19', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5065, 2, '样式三', '3', 'ff_background_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:15:29', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5066, 3, '自定义', '4', 'ff_background_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:15:38', 'admin', '2024-10-28 06:16:59', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5067, 0, '开启', '1', 'ff_game_pool_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:29:55', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5068, 1, '关闭', '2', 'ff_game_pool_state', NULL, 'default', 'N', '0', 'admin', '2024-10-28 06:30:05', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5069, 0, '2.5%', '2.5', 'ff_kill_rate', NULL, 'default', 'N', '0', 'admin', '2024-10-28 07:08:25', 'admin', '2024-10-28 07:10:08', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5070, 1, '3.50%(默认)', '3.5', 'ff_kill_rate', NULL, 'default', 'N', '0', 'admin', '2024-10-28 07:08:47', 'admin', '2024-10-28 07:10:03', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5071, 2, '4.00%', '4', 'ff_kill_rate', NULL, 'default', 'N', '0', 'admin', '2024-10-28 07:09:06', 'admin', '2024-10-28 07:09:57', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5072, 3, '4.50%', '4.5', 'ff_kill_rate', NULL, 'default', 'N', '0', 'admin', '2024-10-28 07:09:19', 'admin', '2024-10-28 07:09:53', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5073, 4, '5.50%', '5.5', 'ff_kill_rate', NULL, 'default', 'N', '0', 'admin', '2024-10-28 07:09:46', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5000, '游戏类型', 'ff_game_type', '0', 'admin', '2024-10-23 05:38:52', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5001, '游戏投注结算状态', 'ff_settlement_status', '0', 'admin', '2024-10-23 07:17:11', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5002, '游戏平台', 'ff_game_platform', '0', 'admin', '2024-10-23 07:22:41', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5003, '热门状态', 'ff_popular_one', '0', 'admin', '2024-10-24 07:22:29', 'admin', '2024-10-24 07:23:05', NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5004, '推荐角标状态', 'ff_recommended_status', '0', 'admin', '2024-10-24 07:23:40', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5005, '维护开关', 'ff_stop_status', '0', 'admin', '2024-10-24 07:24:37', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5006, '平台开关', 'ff_platform_status', '0', 'admin', '2024-10-24 07:25:36', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5007, '宣传图样式选择', 'ff_icon_style', '0', 'admin', '2024-10-24 07:26:43', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5008, '游戏跳转方式', 'jump_type', '0', 'admin', '2024-10-24 07:30:31', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5009, '链接地址类型', 'ff_open_url_type', '0', 'admin', '2024-10-25 08:45:33', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5010, '展示形式', 'ff_display_format', '0', 'admin', '2024-10-28 05:26:23', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5011, '彩金池轮播', 'ff_turn_pool', '0', 'admin', '2024-10-28 05:31:29', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5012, '展示位置', 'ff_display_location', '0', 'admin', '2024-10-28 05:32:00', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5013, '点击跳转位置', 'ff_click_location', '0', 'admin', '2024-10-28 05:36:53', 'admin', '2024-10-28 06:16:47', NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5014, '金额数字选择', 'ff_amount_state', '0', 'admin', '2024-10-28 06:02:52', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5015, '金额数字样式', 'ff_amount_style', '0', 'admin', '2024-10-28 06:03:51', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5016, '金额数字字体', 'ff_amount_typeface', '0', 'admin', '2024-10-28 06:07:05', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5017, '背景风格', 'ff_background_state', '0', 'admin', '2024-10-28 06:14:54', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5018, '彩金池状态', 'ff_game_pool_state', '0', 'admin', '2024-10-28 06:29:45', '', NULL, NULL); -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5019, '游戏杀率', 'ff_kill_rate', '0', 'admin', '2024-10-28 07:07:43', '', NULL, NULL); -INSERT INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5001, '游戏投注信息同步', 'DEFAULT', 'gameTask.insertGameBettingDetails', '0 0/50 * * * ?', '1', '1', '0', 'admin', '2024-10-22 10:49:07', '', '2024-10-22 10:49:13', ''); -INSERT INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5002, '更新游戏信息', 'SYSTEM', 'gameTask.updateGameInfo', '* 0/1 * 1 * ?', '1', '1', '1', 'admin', '2024-10-24 05:34:16', '', NULL, ''); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5001, 'JILI游戏请求接口URl', 'jili.api.base.url', 'https://uat-wb-api-2.jiscc77s.com/api1', 'Y', 'admin', '2024-10-22 02:15:04', 'admin', '2024-10-24 09:13:58', NULL); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5002, '游戏限制-首充', 'game.recharge', '1', 'Y', 'admin', '2024-10-24 09:12:09', '', '2024-10-29 06:34:21', '已首充才能进入游戏(未充值无法进入) 1 不限制 2 限制'); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5003, '游戏限制-下载App', 'game.download.app', '1', 'Y', 'admin', '2024-10-24 09:15:01', '', '2024-10-29 06:34:21', '强制要求下载APP 1 不限制 2 限制只能app玩'); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5001, '游戏管理', 0, 2, 'game', NULL, NULL, '', 1, 0, 'M', '0', '0', '', 'dict', 'admin', '2024-10-21 09:53:17', 'admin', '2024-10-31 08:19:06', ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5002, '游戏管理', 5001, 1, 'index', 'game/index', NULL, '', 1, 0, 'C', '0', '0', '', 'list', 'admin', '2024-10-28 01:30:57', 'admin', '2024-10-31 08:19:16', ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5003, '代理模式', 3051, 1, 'agentMode', 'agent/agentMode/index', NULL, '', 1, 0, 'C', '0', '0', 'agent:agentMode:list', '#', 'admin', '2024-10-29 07:25:03', '', NULL, '代理模式菜单'); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5004, '投注记录', 5001, 2, '/details', NULL, NULL, '', 1, 0, 'C', '0', '0', NULL, 'list', 'admin', '2024-10-29 08:59:44', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5005, '会员投注细目', 5001, 3, '/summary', NULL, NULL, '', 1, 0, 'C', '0', '0', NULL, 'list', 'admin', '2024-10-29 09:00:48', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5006, '虚拟彩金池', 5001, 4, '/pool', NULL, NULL, '', 1, 0, 'C', '0', '0', NULL, 'list', 'admin', '2024-10-29 09:01:23', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5007, '游戏统计', 5001, 5, '/statistics', NULL, NULL, '', 1, 0, 'C', '0', '0', NULL, 'list', 'admin', '2024-10-29 09:02:07', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5008, '原生游戏杀率调控', 5001, 6, '/rate', NULL, NULL, '', 1, 0, 'C', '0', '0', NULL, 'list', 'admin', '2024-10-29 09:02:48', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5009, '组队瓜分彩金池', 5001, 7, '/ranks', NULL, NULL, '', 1, 0, 'C', '0', '0', NULL, 'list', 'admin', '2024-10-29 09:05:52', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5010, '列表', 5002, 1, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:game:list', '#', 'admin', '2024-10-31 08:17:57', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5011, '导出', 5002, 2, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:game:export', '#', 'admin', '2024-10-31 08:18:12', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5012, '详情', 5002, 3, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:game:query', '#', 'admin', '2024-10-31 08:18:27', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5013, '新增', 5002, 4, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:game:add', '#', 'admin', '2024-10-31 08:19:34', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5014, '修改', 5002, 5, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:game:edit', '#', 'admin', '2024-10-31 08:19:52', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5015, '列表', 5004, 1, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:list', '#', 'admin', '2024-10-31 08:20:29', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5016, '查询会员投注统计列表', 5004, 2, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:statistics', '#', 'admin', '2024-10-31 08:21:30', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5017, '详情', 5007, 3, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:query', '#', 'admin', '2024-10-31 08:21:51', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5019, '排名', 5002, 6, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:rank:list', '#', 'admin', '2024-10-31 08:22:58', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5020, '查询游戏类型管理列表', 5002, 7, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:category:list', '#', 'admin', '2024-10-31 08:23:44', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5021, '获取游戏类型管理详细信息', 5002, 8, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:category:query', '#', 'admin', '2024-10-31 08:24:08', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5022, '新增游戏类型管理', 5002, 9, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:category:add', '#', 'admin', '2024-10-31 08:24:25', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5023, '游戏类型管理修改', 5002, 10, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:category:edit', '#', 'admin', '2024-10-31 08:24:45', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5024, '删除游戏类型管理', 5002, 11, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:category:remove', '#', 'admin', '2024-10-31 08:25:08', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5025, '查询原生游戏杀率列表', 5008, 1, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:rate:list', '#', 'admin', '2024-10-31 08:25:54', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5026, '修改原生游戏杀率', 5008, 3, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:rate:edit', '#', 'admin', '2024-10-31 08:26:31', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5027, '详情', 5008, 2, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:rate:query', '#', 'admin', '2024-10-31 08:26:52', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5028, '查询平台管理列表', 5002, 12, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:platform:list', '#', 'admin', '2024-10-31 08:27:27', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5029, '修改平台管理', 5002, 13, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:platform:edit', '#', 'admin', '2024-10-31 08:27:42', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5030, '获取平台管理详细信息', 5002, 14, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:platform:query', '#', 'admin', '2024-10-31 08:28:03', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5031, '查询虚拟彩金池列表', 5006, 1, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:pool:list', '#', 'admin', '2024-10-31 08:29:15', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5032, '获取虚拟彩金池详细信息', 5006, 2, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:pool:query', '#', 'admin', '2024-10-31 08:29:32', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5033, '新增虚拟彩金池', 5006, 3, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:pool:add', '#', 'admin', '2024-10-31 08:29:55', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5034, '修改虚拟彩金池', 5006, 4, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:pool:edit', '#', 'admin', '2024-10-31 08:30:09', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5035, '删除虚拟彩金池', 5006, 5, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:pool:remove', '#', 'admin', '2024-10-31 08:30:19', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5036, '查询会员投注细目列表', 5005, 1, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:list', '#', 'admin', '2024-10-31 08:30:55', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5037, '查询会员投注统计', 5005, 2, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:statistics', '#', 'admin', '2024-10-31 08:31:24', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5038, '查询会员投注细目列表', 5007, 1, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:list', '#', 'admin', '2024-10-31 08:43:39', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5039, '汇总统计', 5007, 2, '', NULL, NULL, '', 1, 0, 'F', '0', '0', 'game:details:statistics', '#', 'admin', '2024-10-31 08:44:09', '', NULL, ''); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (1, 2, '电子', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (2, 3, '棋牌', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (3, 5, '真人', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (4, 4, '捕鱼', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (5, 6, '彩票', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (6, 7, '体育', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (7, 8, '斗鸡', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (8, 9, '电竞', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (9, 10, '彩票', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (10, 11, '区块链', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (11, 1, '热门', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `ff_game_category` (`id`, `sort_no`, `category_name`, `category_switch`, `open_type`, `open_url`, `open_url_type`, `icon_url`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (12, 12, '试玩', 2, -1, NULL, 1, NULL, NULL, 'system', '2024-10-25 15:11:47', '', NULL); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5004, '游戏限制-首充下载App', 'game.recharge.download.app', '1', 'Y', 'admin', '2024-10-24 09:15:01', '', '2024-10-29 06:34:21', '首充强制要求下载APP 1 关闭(全部限制) 2 开启(仅限已首充会员)'); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5005, '游戏限制-仅限Android设备强制下载APP', 'game.android.download.app', '1', 'Y', 'admin', '2024-10-24 09:15:01', '', '2024-10-29 06:34:21', '仅限Android设备强制下载AP 1 关闭(全部限制) 2 开启 '); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5006, '热门一', 'hot.one', '1', 'Y', 'admin', '2024-10-24 09:15:01', '', '2024-10-29 06:34:21', '热门一 1 开启 2 关闭(全部限制)'); -INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5007, '热门二', 'hot.two', '1', 'Y', 'admin', '2024-10-24 09:15:01', '', '2024-10-29 06:34:21', '热门二 1 开启 2 关闭(全部限制)'); - -create table ff_game_popular -( - id bigint auto_increment comment '主键id' - primary key, - sort_no int default 0 null comment '排序', - platform_id bigint null comment '游戏平台id', - game_id bigint null comment '游戏id', - popular_category int null comment '热门 类别 1 平台 2游戏', - popular_type int null comment '热门归属 1 热门一 2 热门二', - create_by varchar(64) default '' null comment '创建者', - create_time datetime null comment '创建时间', - update_by varchar(64) default '' null comment '更新者', - update_time datetime null comment '更新时间' -) - comment '平台热门管理' row_format = DYNAMIC; - diff --git a/sql/update_xiongshang.sql b/sql/update_xiongshang.sql deleted file mode 100644 index b5e5aac..0000000 --- a/sql/update_xiongshang.sql +++ /dev/null @@ -1,359 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : dev - Source Server Type : MySQL - Source Server Version : 80040 - Source Host : localhost:3306 - Source Schema : ff-admin - - Target Server Type : MySQL - Target Server Version : 80040 - File Encoding : 65001 - - Date: 22/10/2024 14:03:00 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for ff_agent_level --- ---------------------------- -DROP TABLE IF EXISTS `ff_agent_level`; -CREATE TABLE `ff_agent_level` ( - `id` bigint NOT NULL COMMENT '主键id', - `level_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '代理等级名称', - `level` tinyint NULL DEFAULT NULL COMMENT '等级', - `total_commission` decimal(10, 0) NULL DEFAULT NULL COMMENT '晋升等级佣金标准', - `icon_url` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '图片地址', - `default_status` tinyint NULL DEFAULT NULL COMMENT '默认状态', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理等级表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_agent_level` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - - --- ---------------------------- --- Records of ff_agent_level --- ---------------------------- -INSERT INTO `ff_agent_level` VALUES (1, 'LV1', 1, 0, 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAACWCAMAAAB5EONmAAADAFBMVEUAAAABAAAIBQQAAAABAAAAAADWQB0HAgEBAAC7Oxi2OhnMRSFVHxH/hSj/2DvLRCCgNxvPQh30kCu7Px+oQSfNTCuuPR7Xk1V/LBfnkm/rZyPCdE7No3vqrI3jsYnHNxzbZ0zpXBf+9W60VTj8x6mhNx377afnezT779/4xab1xaaHOCD90D71xFf99rb/1ab//tL/0qP/+dH/2qj/+cz/3az/57n/7Lz/9sr/4LH/7sD/8MP/3KjMUSH/9MX/367/47L/9cj/ZQL/5bb//9X4qouXOy+4TTz/z6D/tpD6r5D/sY388tb//9r75cr/y57/xJ//zDX8rY3/y6n/1bX/2br/u5P/r4n0p4fdgGTXfWP/XwD63sb/vprunX387M3/0rD/x6XXdlz5kWv95sL/+Kbto4X/yJn/WQL//9/528DmnYH/Zxf//+zci3C1SjXENwj87NPPb1b/3b7zsJT4o3+7STj/zq3/YVb+/uT/rlPaRyT/iQH/9J72u5T/1Wj/Zwz/ZET/YE7/ZTGeOSn/aCT/ogL1s4relXnERzP/qBH/xJe0Oi3+7I3/hkXGTjv/UwP54br//a7/cwP///PVazzdUC7/kgP/fwHfWjjHQRH/jFX/wj6JIxn/mwXmp4z+qIS6QDL/8Zb/uUi7U0D/xC7/5oX/3HOrNST899zSY0zsr5L/43vcb1T/mC7/bAH/z17mc1P/XzrNc1z/xlfJU0D/jjX/XyX/XRD///z/68bps4nhkHPujWrEYEy/W0j/VEj/dx/+uYz/okvTNRH9RwP//Lv/r4LrlXf2mnj/eTD/oCLghmrHZ1H+pXf+ulWuTTn/UzT/+lz/lkOgQzLyxaf/ck/MXUbqtoziZ0bVjXL+mlv/bzX5163bpYv/ojn/tTH/hAz33LLvy67/5q3qg1+nPyz/kR7/tR39gmT/zUL/SyKcLx7rvZ3//Znselrz1bv8ymvLfmL/4UrfuJ7Qgmv/f1PKSRn/3Z3/9H7/5GHlRBjrTze4a07brV/qXUs2ld+4AAAAL3RSTlMACRAZLib+NSChir9Q/v7PguXRtV6tmXxqo7poNKxn/Kj45nfgR9L30b2hK9Og35Ed5c0AABouSURBVHjatNQxa9tAFAfwOp2roUspDRk6hAxtyZBPoD2DZo3hQAF1d4WFZAdrEEjDUUhARoONrEUII4Tt0cagwRpEIsjigF0oOFEhYAwFZ+o76Vya0qGDdcMhnp99P/3vfC/+f1Qq+/v7Bwdfvh4/ovPPXx+fbsjY3Nxk6dls7s9nZ5P5PJ3NYJ7MZvk0gXFG5tkKWt/n49Ph4dHR0eHhQQXGi1JGZf8DE4bc03m0eTw+P8UeoT6RKXmw+v2+9WCSmTyavwt++lAUQtoM74ZPv5yjzfH3jx/fvn1Thrayx3DzyUJfoM0mOokMb7Ner8NwDWNWn07Ht9W78Xh6ezsdj+9u6SOd4bOLxc26lzeHxgl8+wmddvVOh2M+7FV2Lq28u0+tWLdj18NRtHmSDS5LkoxhsjAdiM169UIUm416UxQvqoEIhUYT5iopBNWLob8umpOWfAIb0o5OlGka63r8tlLZeahv5rNY15YpSHG3Z0RdBxbPmJYU+kOxXm2quVRVLwCtiiBVVZDCI0jVoR+CFJo7mRx5ShtjlEx1TfPN13slUPMQzFSOkNfrIux1pBbHweLMchiAlBUbdZFlQaqyKpGyRMoCvcmywzTM8maOM+A9EWq7Ug2k1hKolR3v/8s3RGq90hEGKUbtlZRl+eLM8ppoxDqVskQqQqFaFAZQGFkMlWaKQqSKt6qB1Ndev9zbPZVIU1tHXcgUyW7Yoosz5ohm+kwKmao0U7E+8pmimev0cqmCV7UYpPbuqXtABalu655CMlVcj0q58OeAVUGaw+juEynNVAVpYxgzVCq5GBmK0o5630BaAvUFUIlUt/1VkYrsbWNK+kIhpZkGf0qbrApSUYgzKm11cbtH/lfJHUi1fimppiDVl2aeKazlbWPKlgKVPjuneQGuAbVeFVnBT6iUM2T4NkLGbAzS1CwlVSL1Tb+NZaXXRtid0MXhBmg0/i0dbAsDK6RSznMVGcldRaqB1CrprILUWmoyTSXcxsT4I9AUUjYopMFzenOUMlTagt2XZbiwwprWt2KtlFSJ1L/UDEgFwzXQK6Qw/xzRS2krbdRZWqDS6nXMUKm0ItLQw8kVkdrlXFYg1WybZup5Tr6400rMIewwzXTI80OQ8s+lgRAzVCp1EUhdhJMxSEu6AYhUs/srhEGqIM/JpY6ULAV2ADCep9KA5/m8wNKDG7BCHJJmkDpdDJnKMpLubFuzzTJSfZf6tm2bZjfCIJWxR6UStxQAxv8t5XMpD8chYFnBTFoOaXYcwwhdWZa9yRX8nPWqjFTf+RpIp5cGLtZSJtvFv/0opCMqFfg/6ETKs9dW0Qyz0oNM267bqdmXpnlZSqo2+enaZbsNJw1SCReOs5Ami/v76YjArolUGAWCQEIWnoUcjF5xVLoIiVTpyeEVkZZD/UV7/b4mEcdxACcq6kE+iR7Vg4iIHvQgCox6EJFkUW1tzLsSbKWsLaVi1DL7cWK2jLCUL17hgbjWKl04uDXCaRDM6tua0TYpfNBkJpVu3LA2xiBcq8/nzvUXdPfAB+fXu9e9/Xy/38/dQikXjLii2AK4XF+efHmN0i9ZyWS1ZgbAqEilAUoInJClGTleUpAHP4HPaNnpjPb6AiM8Sjl1UkWpUHje0+yENrCrZwJuPjExkR/zkH/SjNVK6eVs2pOQMsoJpRCI8ER5rLE8/ByksAJ44HJcYa0a1Lh86dx0AO8VeRv1gtTrzY/lRYwQuASklOaGBgcPDw43tRMCUiwHiJcIV+GxUDoRaUZpc3nMA5fTpFWhylJ3KvIWpbCxfsReGxs5kSxKKe1vajx61MBaABvqlySUyt+5X3th8FjeOxGBdhfnVZ7nuFRWUIUaBGnWI/jeyqk4p+P4woFrrQ7+fULIgEStoaP1R+uP266ct+iNncNzVkoklFozbhj8PpT33vL2Qmvt9LkiI6KQyqZUoa4JgjQtCBEfttZd0ZEOlOJa2z5A4MhIxH8MoAx7pObpSUNDzGgfnvRIGYJTLCPeulUKyV0fbqw+aK1HTCjlVaF2yFK+NwpbI7xw9AY7SqF4RzAYd6NUktLD9fWNDpZlT223nXc06PUx41DTZD+lJJOhuo7SXBweK+7vCTh9vdBaPzKBVFAn1fcoFRIfy9iw9jZHg6WQJghSv4kQKl0GaJ2ZYdm2NqDWmA8fOqS/GLM3TeYSkCzVleaUwcGeZh/WQDkupXieT6lCDaE01UemA9Ba+wKugnxzjZ8zUdo3dKeubisjS9uO1Nq2MwcbwKqPxYYmszcIpQll8FwhGOmSpQvXroM0999XAGxYt2hQmk2ZKguRqM8ZmE5XpRylTY11pwHKILSNPXXuXC1zrAFyRWxLU7YvQfs0sH6AlOOiUZevXF5Yb+VF3pMT1aCuXIdSSEJX2VyGehtJcSgtCIL/sKHOYgboojSZvHePPdbZoFhjJyZvDPQHFanAPY+CdGY94UXRkzOJm1SgLl2+MZXj4cgl6OYyrAAYk1/gPr4ybNtmNpuZf9Ca8ZmZ2Z215s5O2WqMxd796PMU5EyF9HRXc9fvN0QEabtJt27l0iVA/c/FunLZRlma40W6YbrsEmCvEUqDFsc2LUJZhLY9TT79XAyHp6ZGx2tqLYht0BuNsQcv/8y7UZpLRwOR+29MitS0Zrkc6v+PFawiSHm0+n4JqXTpar1j61azA6UIrUmeGy+G93/69Gm0OPV41ra9sVMPuSK25fv8Bp5Lp4Vfkd20KtWtWbZSDapiTbVjsu1nyYb3vH+s0aHVmg0OhkEoezJ5b3Y0HAYoUEdHi92/v9peHLQj1tgCJftsfj4nBBd20+v/pEqoKll1Is+7PTyP096g/aY1GDBSgB65l/z5Oxzev39/lXpgtLt75qeN7bRjroh9+adylq9UpbrrihSoKlnXaHTus6JOB9N+q3aXwaJAcTadmpkCKB5IReuB1u67n0/aHHa7bG3BKqhI1Uw3rFJNumhdtRne8TWDDvMercEiR8oybVeSNbeLYcV5Ewq1CNJWsAK2dXz7vnq7EYug5QFWQSUBUuvqVVini1KVrCvW8sMWZtcOBqEMQp8mbS2t4XAVWrx76cKHhw9b4QDr44fdj2dr9x4ELFjPwML1p1Lp161doaq0av3Lm/2ENBmHcQCHDgZ1Kagg6B9Uh+rg6/a2TZvTscU2dTrcnH9o1VSSJa9bphsvgiehiS9I8CbURQc7zKJDjA5DU+ggDlp0SLJBO+gQAiWRhqeg53nf97d3ui2CvfVV5/XD83u+v71jR89O3VebNE6vUHxXx6MEMx4FKGZiYiuWmt2kWnZyAtaCWC6W2rT3t492oRVWFrbgX56+TL2w1vG4tuO+ePYu1z2eX1sqgAZn5xM8wySYn0tcJOgPWjBcbO+p3TWXROvg7MiDNzNVZ4rKrzT1whWvS9MQEkYK0Faedw1vy9BIuDXB2DGwvZklLhgEKwb6ZTB7k3fBCtjZxa8zJy//s6ki9Nw1b0hjqnF44S6FPIba9wBUksa4+GaC99mlMIANEiz0y5KhaXfygYT98Hzs+FViVR563ems1agdDmcI+oS1Vw3F8mcfiw2vMQLULAWwuzkZy8WWdyhtO2Axs4Pdz8dO31Aei1t63RlqMN10eLyitCXBzm4VLOkSLCkrQikZy+9Cv8jKYr/MrlHYAuzXbPj1zNgxWFjll9R535S1eqSR3kswO58IFEYaDLcIS1rgpCjE8szPFBchk41xuadmZxKxuAVDX8dOnoLBKg1tzNZ4cEvhga+f5zeXC6FDu7zQpjyUkmKm7Py8gPVLKxsJG3SefL+6ycoq1yZnbbba4xGgIWjTwzipvdgmnvcRKGHKWB8/f6Bf0QWqrmkVrIgdhC1QamVhSb3wXKJ2iCMNudjEvZxc+y0uvsNKUIpAi7F30tNc0O8nK7tGdXQR7OLXMVxZJUZ6xaHO6gcQ6gyF7rck5sMTACUj/SK3CZ3lwjAP0xGu4C1hg3LeXQWpeHFVKbCyKG3QW6cG2mCkzhC0KYO1l6GtPPMHp0r4wZgZZjOOWIuI5dL9hvHVsIh90D1TBdYKr6hrDvWAzdNmtTqdzn6oc2Htp4ceIrQMM69UqVQi1rcTJ/2KWrhoRts4cndQyKvFmSpoV2XH725zzzV72mpqnI8ZvgC6jbXHK7+8U/qHEbV23peJSthoNMil1lc0t4UtCL96MnP8SEXUIxc8t5NznWitU/38JUMn/D1r2CaUlnPKTBnLtIajXBCwYF0G7M6Kd3UwvNplXflxET67VkI9b+tKjs7NdXrUBArS7W2ud83Hs+WdJaA0REVTPqYf+oU3VxTi59LagXd3p/TZlWTVKRhrBZ+oz8/ZbHOjo3NTGXhozp/98KsWgNpLQQmzyKkTQ9M+FvoVtIhbEI3E9daabFavfT92ohLqEaC63e7m0aQtF41+QitAvyzcE9tUeqD4UuwUrUYj/NGsLxOMRHELlpdS02mtHrLypOpE5VN1u22dXbnhJbB+ntiODPYzDLap3IIWHTw4CdRoMBghFLsbj0z7/VGgplKzWYkKy1rJVD/aMFPjQz1o3dqetPIMtumvFxScohSdJDqWzcASIHU4ntZnFaS6xxe7e4eXLVucI4FLWopZdO5y0ClJbwkxGMxMJgpUkMbTaqBqkXqkImoSoO/fI7Vn+Esw1i3UqciJr0RoZoSYDWSgkAPQOswtih+ftCyn4vG9dLVIPVYhtc9ma262SdTpiyM8XFBlnShl7esL6+vrCxtm4iwB1WrrDKzmK1L39tJWvRLUs31NzRD3+BBSJye/MSAt58Qw868DQgYZnThQzCEopo6iv09HBWpbtfqm4tTppyxQC52HwvQ/C9RjAguMEaWloBiN1kj1TSI1lx6oqVaC+h2pnUDt6UVqPytCqZL3EsVs1IOUUI0EWkKq0RiAaknFe3LpqZpqvRLUkXak4lTzVFWpedI0SHdegFSmylICJU7ILaov4l+K9/SEp6zVapMSU21qam635am+cm+ctM7MLARe1B+iFkGJ1FRHvYtYRCo8uHXcHlNgqk3NnYXUUvNEqd23GNgH5P6+SGUN8kjrhMhOkJq09Dsy1Tav11U59cdIE2xAeSpNQqm6BekLeJGo8tnLEyVQpPZNilR3G3xDoyi19yXcAD6qBBPj2xCQgf213hcF1DLQxsZGrS5PHXAoQL30Y6Rdonb3vpzGqZZwYuwb9UAN1D/knxEq6T2Byk6MxpinTjkcilCbwEqoZKr04eh0SAVpK08TKjJRehBKpA0mmerxKE99i1S6BFSkBp7Ns7SOUNEJ0JIjra1tMBmAujyMVLfHEfoH1OKR6gg10MuyBjo/1cP3kwkjQQ9QbQpS2/9E1YnxfQsMMXaDkTYSqpbc+FoJSiba0AC/Nxvz1Pc2RahvRmwHp1pKiqG+LbCUwWgooEqRJypDkXpLoPYC1f0/qDoSo/F3M/cT0sgVxwGctrtZt1vYLbbSW089Z8eYf2pNRMOOSUwGYybZksmfZmpQqTQbxyABr3FRKB42kF5U2EsqHkLZy9S0EMImgust2BTcw7oeZaVQutBLf+/NTMbZcQplRuoP9v7h+77vzRvJ7MDsAEiHHCMidbYLHRNGhiKpksrop35aXfRpUh0yFA8+RmWqrZuoDIWSClDrsLNLhbcMI6iqVGWmSgpQJRU5bV0nHsGppNYNoyq21aTKCVBsBSia0SGJOnbhfHIqoWpqyAiqN6KgqpzvXJ6VVCx1SgPO7lgUBbhaqhqKj/wRiTrpBihOVA2FUC2uQYnqM4yqLIDsFNddAQXqoJSqWwl1XXAOWyxKKm0MFWKVqeOqQDFUvuoN2aVUnd3N5FI6QQpjlanQgJR+6i6kqqKqnfLdWaa6VLtehiKqXUktGU8dlZwSVPk6MniBip0wMhNLNah9+qlQAJ9MlZ3qRGFsEvW3SSuGygepUmruUvciQKU8pdtGUCMKqsqpuOrZbSJ13KqSylCgDhtMvaOmakKFE/8CVRsKUrNFpvrqE1dAvT+q6cTSC1QLkmpBgWpDbwGYCmVljKFOXaQqnOq3EXjmy1QxUbXzCqmRlYUDkarhlJ72Tpu7S+1KLSonmjGRurDl83mZqGHUPUR99uzV/S5UZCqhTueYU6TeN6ugOEw1temLeFeMoUJZi5j6PaLKTjUUUd0XqJgpQ5Xj7qYamfIsGkyFVAe0nBiqTFWCDgtOpZVA1Aci1eNZnDGYegTUy5wSFN5G3K4uVXACtOuzKKnfi9QpT9QQ6pRHoB4IVMRUOpU3fLdTQUVQpVFN5SKIWjaEOoWpD4F6PGBXO2UojDJVOVE11XmRWjSK2sTUR0dHx6N2LSdI1VSz5hCETEUFMI66iqk/Ho9gJjjVUGGcVpkq9FObutSlegyh+jwe70WqthNf711dKqG99gQaF1BfSFRv1CDqFlAXDr4+enQ8ZFNAXcJ0oRaZ2k9oScVxIupPV0Dd24MjAKjyGaqCghRTv/vhrx+++/k+qe2EIQl3benpVVDn99DJursy8i7T9c57iGv4yZdPnjz58myA1HRiqhmoqKpXQAXrwm50xOVCTmWeypsTcYxmzEoomUpokHQOVx/AH4INo94VqdH5vdbq6urBQ7vbKjtVUDz4hd8FNiVVKQ2Sg83HL37//c+HiBqNemYMoE4JqbbQj7fau7URq8WCKBpOi9aOV0ozGXfw8dPNl6urC0D1cJwnbgQVZqu4Ob+5c9Y+b5tO7W4ziIYvhWrveGWkaxnXyvaDs/bO5vzq7y0uagi16oVUJ7gWQE/O5+YS7U6naHPB4lq0AlXGqYZCpGsk0dr+5YQ9OTnbebm6tw/UqCHUKS9djO+0T85jgUDMH2iV32RsFoT9b4HK0CBRPIIf2rFzc+cn7Z2Xe/scN2MI1TtBm/18G6DZbDYRCFTm3pROzTa8bSSmVp5qKLTUXH+0/qLNh+dgzs9PNoPTPi5uBHWCDrKV5Vl+DkkxNlFpV0tpl5sgQKt5x7tkBGjmYPvBPMuCFE87xfIW2oAC3OkwTsdkP/y1l49l/RK23z9TLnNOK8KCU52oJpTI7C09WJ3mRWgsls+g3WmmozW9f7P6sETNOkb5wSE+wedi2YpfwCYmE/FSuT5mIQGrilMbao4/Xf9jms+J0Lk88VbYnGTm1PSJPuoXhf1vR1i7jWVZng1Px/wVPwzCzr46LVUzY2aSUOapDSXNxR/Xf2oDNBbDiU6HMiDF89rSMd3U8zur9z64eadUnB0aywkTDiVjFcDCJBL9s8edv98QYwSJMFiqDYVtb155tP7rGc8CEqixwBy1ljGL0uf2qqmvB0LV853ljbsFzuHIhcUJUflEFzs+/lu5kLZaSRK0WkwBinfTr5s5DIUJxFL1epAQqK+fu6qNXvRRi84Pge4WqisOfhomDP+SFJXMLvtF7OR4vFDinBZ4pF/GxAPQNSKzsLS9muNFaDabjzRpkOIXxeev4yXT7Rv420t91ht9hcJpKJEDJ6ImUzSTqyyLVscsWyuU624zYDWhJBF/uv3niQQNZKcnmvUgKRzMdnuxY/r4nu7PBMHaAx+u9ZpKtelEOAnQZD6fp2gqtyxh4ecVHVN1zUkCllQ6JejMEewmXFIMja0cNhkkhXEPZaomU98t/Z9fQVvxh2uf3TWVuRwPVLCGQiGmHkosi5Xl+yfPOqZT0hqEIQWnDM0QxRfrv+ywOWntYwx3SFNBDHWOmGsFU+9HhnzS9h7qQA9g731s6izyrGRN0XTI38WO988UCmmzBWOlwbuJoB+u/7pjYyVoIsSlt5g1LLUMjnFl093PIFK9UrmvEOyNW30mU5VK5ERqivLRYamygOVbphJnNmcyIjaI137tYHtpNcxvSLspyaU5L81QIZDahJIKUElqULBQ2UItmQhjKgwTocOzGIsuBpOvdk3lOjx2kBZDg8HW0vbC8dCGtJvmvOl9j3cCpKGQc5B6U0AlhZbKkRoRLGBxZRul/RyfTAlYaqJJsdACHCzr6G/vNqq0OQgFXUPQ+NH2T+2hDUEa8AeYdJrzTIE0FbLa87USlFRceyw1GAuVbXQ8PBtKYSpFRZoU7C8hWNbh2HxmOs2YCXiIksUftx+d2VkEDQQC2USKAyjOlArZwnG5pIb/73vKyvJhkGIr3Wwm/ct+fIdh2QF2/stCjaNpbnf72ebg4MaGAPWHufR+FEsZKhn2GlxS7co2TKd5Pk9hKsNMHDaTFQEbAOzxw8efP378+bP5DYCyAQydK6bT0SgsPs0woTDzryU1vrKtMRakQKVpunlY36hUUK6JwAY72l74+qvNV0MiFEpKpWtxkHpBSk2naqWCZkmvprLloi2MqRMwW4f0RsUPVBQs7xgdGmUlqD+1D1AsZZh8aP/qSqp9yjaqK2ySQVQfzOFhKoCxwGOxUlj76WitNYOkEGkoH+0UdJRUV2VJG+MDKZrIYZMKVKCv8mQrbLFWiyMp1JRKet8UCjpKqreyFosvIlB9TdhfWX/XmvCzK7D2caCixU8yek9S/ZW1UlsR0KKByk4nIFgMzUJJWyBFNaVDqZaOkuqtLMb2fQ6VtTKABW4EtYA+DmTR4ysfBaiYaSof1X+S6q/sbVRZiw9jUbrNZoaAkwGVVJQyeW+1YLqtv6T6K3unUahlghEh2Xp97e3bzCGcpKLUm2JOdZTUaCxUNk4yW02BOjxy/+1hXJjoCqOnpMZXFt9iikG6iaiZ4cEBoIrSOCrp/w59t7LVIklHIFWJ2oovzqCSorX/QMfaG96Cj6Cyp2sEThUVoNVaLEJJ7+CSXgOo6pFQI99i6n6ruLZ/LUqqXdkyN/x8YPybDIFenPow9INrA1VcvG83Gp04MTrMnZoavdelpNq3mEahXGo0rlVJtfbXvd67vfc+umYlvRQLNbh168a1K+llle3puXnzZk/P9SupGgtamPevNxRjkRac1x6KBoxXAv0HIb/znYYmR9cAAAAASUVORK5CYII=', 1, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得0佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (2, 'LV2', 2, 100, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得100佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (3, 'LV3', 3, 300, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得300佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (4, 'LV4', 4, 500, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得500佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (5, 'LV5', 5, 800, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得800佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (6, 'LV6', 6, 1000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得1000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (7, 'LV7', 7, 10000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得10000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (8, 'LV8', 8, 30000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得30000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (9, 'LV9', 9, 50000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得50000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (10, 'LV10', 10, 80000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得80000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (11, 'LV11', 11, 100000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得100000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (12, 'LV12', 12, 1000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得1000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (13, 'LV13', 13, 3000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得3000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (14, 'LV14', 14, 5000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得5000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (15, 'LV15', 15, 8000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得8000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (16, 'LV16', 16, 10000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得10000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (17, 'LV17', 17, 100000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得100000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (18, 'LV18', 18, 300000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得300000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (19, 'LV19', 19, 500000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得500000000佣金的代理'); -INSERT INTO `ff_agent_level` VALUES (20, 'LV20', 20, 800000000, '', 0, '', '2024-10-24 17:24:35', '', '2024-10-24 17:29:18', '晋级需再获得800000000佣金的代理'); - -SET FOREIGN_KEY_CHECKS = 1; - -DROP TABLE IF EXISTS `ff_agent_mode`; -CREATE TABLE `ff_agent_mode` ( - `id` bigint NOT NULL COMMENT '主键id', - `mode_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '代理模式名称', - `pattern_source` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模式来源', - `settle_duration` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '结算周期', - `calc_performance` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '佣金计算依据', - `apply_mode` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请方式', - `calc_level_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '代理佣金计算层级', - `calc_mode` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '计算方式', - `calc_range` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '业绩计算范围', - `calc_ext_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '越级额外佣金类型', - `calc_ext_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '赠送比例', - `tutorial_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '推广教程配置类型', - `tutorial_contents` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '推广教程配置自定义模式下内容', - `default_status` tinyint NULL DEFAULT 0 COMMENT '是否默认(0非默认,1默认)', - `enable_status` tinyint NULL DEFAULT 0 COMMENT '启用(0未启用,1启用)', - `last_settle_day` datetime NULL DEFAULT NULL COMMENT '上周期结算时间', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理模式表' ROW_FORMAT = DYNAMIC; - -ALTER TABLE `ff_agent_mode` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - -INSERT INTO `ff_agent_mode` VALUES (1, '一级净盈利', '1', '3', '2', '0', '1', '0', '1', '0', 0.00, '0', NULL, 0, 0, NULL, '', '2024-10-23 10:24:35', '', '2024-10-23 15:54:19', NULL); -INSERT INTO `ff_agent_mode` VALUES (2, '三级净盈利', '1', '3', '2', '0', '3', '0', '1', '2', 0.00, '0', NULL, 1, 0, NULL, '', '2024-10-23 10:24:35', '', '2024-10-23 11:36:01', NULL); -INSERT INTO `ff_agent_mode` VALUES (3, '全民代理', '1', '1', '2', '0', '999', '0', '1', '2', 30.00, '0', NULL, 0, 0, NULL, '', '2024-10-23 10:24:35', '', '2024-10-23 11:36:01', NULL); -INSERT INTO `ff_agent_mode` VALUES (4, '无限极差', '1', '1', '2', '0', '999', '0', '1', '4', 0.00, '0', NULL, 0, 0, NULL, '', '2024-10-23 10:24:35', '', '2024-10-23 11:36:01', NULL); -INSERT INTO `ff_agent_mode` VALUES (5, '一级代理', '1', '1', '2', '0', '1', '0', '1', '0', 0.00, '0', NULL, 0, 0, NULL, '', '2024-10-23 10:24:35', '', '2024-10-23 11:36:01', NULL); - --- 菜单 SQL -insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -values('代理模式', '3051', '1', 'agentMode', 'agent/agentMode/index', 1, 0, 'C', '0', '0', 'agent:agentMode:list', '#', 'admin', sysdate(), '', null, '代理模式菜单'); - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10000, '模式来源', 'ff_pattern_source', '0', 'admin', '2024-10-22 06:26:19', 'admin', '2024-10-22 06:26:40', '模式来源'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10000, 1, '系统自带', '1', 'ff_pattern_source', NULL, 'default', 'N', '0', 'admin', '2024-10-22 06:32:33', 'admin', '2024-10-22 06:32:41', ''); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10001, 2, '自定义', '2', 'ff_pattern_source', NULL, 'default', 'N', '0', 'admin', '2024-10-22 06:33:05', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10001, '代理佣金计算层级', 'ff_calc_level_type', '0', 'admin', '2024-10-22 06:42:11', '', NULL, '代理佣金计算层级'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10002, 1, '只算一级', '1', 'ff_calc_level_type', NULL, 'default', 'N', '0', 'admin', '2024-10-22 06:43:00', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10003, 2, '最多三级', '3', 'ff_calc_level_type', NULL, 'default', 'N', '0', 'admin', '2024-10-22 06:43:14', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10004, 3, '无数级', '999', 'ff_calc_level_type', NULL, 'default', 'N', '0', 'admin', '2024-10-22 06:43:40', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10002, '申请方式', 'ff_apply_mode', '0', 'admin', '2024-10-22 06:54:08', 'admin', '2024-10-22 06:54:13', '申请方式'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10005, 0, '直接生效', '0', 'ff_apply_mode', NULL, 'default', 'N', '0', 'admin', '2024-10-22 06:54:46', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10003, '结算周期', 'ff_settle_duration', '0', 'admin', '2024-10-22 06:59:57', '', NULL, '结算周期'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10006, 0, '日结', '1', 'ff_settle_duration', NULL, 'default', 'N', '0', 'admin', '2024-10-22 07:02:37', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10007, 1, '周结', '2', 'ff_settle_duration', NULL, 'default', 'N', '0', 'admin', '2024-10-22 07:02:53', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10008, 2, '月结', '3', 'ff_settle_duration', NULL, 'default', 'N', '0', 'admin', '2024-10-22 07:03:08', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10004, '佣金计算依据', 'ff_calc_performance', '0', 'admin', '2024-10-22 07:25:17', '', NULL, NULL); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10009, 0, '有效投注', '0', 'ff_calc_performance', NULL, 'default', 'N', '0', 'admin', '2024-10-22 07:26:14', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10010, 1, '亏损金额', '1', 'ff_calc_performance', NULL, 'default', 'N', '0', 'admin', '2024-10-22 07:26:37', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10011, 2, '净盈利', '2', 'ff_calc_performance', NULL, 'default', 'N', '0', 'admin', '2024-10-22 07:27:09', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10005, '计算方式', 'ff_calc_mode', '0', 'admin', '2024-10-22 08:23:21', '', NULL, '计算方式'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10012, 0, '所有会员(综合盈利会员)', '0', 'ff_calc_mode', NULL, 'default', 'N', '0', 'admin', '2024-10-22 08:24:18', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10013, 1, '仅计算亏损会员', '1', 'ff_calc_mode', NULL, 'default', 'N', '0', 'admin', '2024-10-22 08:24:37', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10006, '业绩计算范围', 'ff_calc_range', '0', 'admin', '2024-10-22 08:26:04', '', NULL, '业绩计算范围'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10014, 0, '计算全部(含无效)', '0', 'ff_calc_range', NULL, 'default', 'N', '0', 'admin', '2024-10-22 08:51:44', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10015, 1, '只计算有效会员业绩', '1', 'ff_calc_range', NULL, 'default', 'N', '0', 'admin', '2024-10-22 08:52:27', '', NULL, NULL); - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10007, '推广教程配置', 'ff_tutorial_type', '0', 'admin', '2024-10-22 08:56:58', '', NULL, '推广教程配置'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10016, 0, '系统自带', '0', 'ff_tutorial_type', NULL, 'default', 'N', '0', 'admin', '2024-10-22 08:57:35', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10017, 1, '自定义', '1', 'ff_tutorial_type', NULL, 'default', 'N', '0', 'admin', '2024-10-22 08:58:16', '', NULL, NULL); - - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10008, '越级额外佣金类型', 'ff_calc_ext_type', '0', 'admin', '2024-10-23 05:13:35', '', NULL, '越级额外佣金类型'); - -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10018, 0, '-', '0', 'ff_calc_ext_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:14:46', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10019, 1, '比例中的比例(跨级部分会员承担)', '1', 'ff_calc_ext_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:15:40', 'admin', '2024-10-23 05:16:20', NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10020, 2, '比例中的比例(跨级部分站长承担)', '2', 'ff_calc_ext_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:16:16', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10021, 3, '站长额外固定赠送', '3', 'ff_calc_ext_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:16:44', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10022, 4, '比例中的比例(跨级部分站长承担)', '4', 'ff_calc_ext_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 05:18:59', '', NULL, NULL); - -DROP TABLE IF EXISTS `ff_settlement_setting`; -CREATE TABLE `ff_settlement_setting` ( - `id` bigint NOT NULL COMMENT '主键id', - `commission_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '佣金领取时间类型', - `receive_way` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '领取方式', - `commission_start_time` time NULL DEFAULT NULL COMMENT '佣金领取开始时间', - `commission_end_time` time NULL DEFAULT NULL COMMENT '佣金领取结束时间', - `agent_audit_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '佣金稽核倍数', - `min_valid_bet` decimal(10, 2) NULL DEFAULT NULL COMMENT '有效投注金额', - `min_valid_recharge` decimal(10, 2) NULL DEFAULT NULL COMMENT '结算周期内充值金额', - `day_commission_limit` decimal(10, 2) NULL DEFAULT NULL COMMENT '日结模式上限', - `week_commission_limit` decimal(10, 2) NULL DEFAULT NULL COMMENT '周结模式上限', - `month_commission_limit` decimal(10, 2) NULL DEFAULT NULL COMMENT '月结模式上限', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '结算设置表' ROW_FORMAT = DYNAMIC; - -ALTER TABLE `ff_settlement_setting` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - --- ---------------------------- --- Records of ff_settlement_setting --- ---------------------------- -INSERT INTO `ff_settlement_setting` VALUES (1, '1', '08:00:00', '23:59:59', 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, '', '2024-10-24 09:14:00', '', '2024-10-24 10:00:00', NULL); - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10009, '佣金领取时间类型', 'ff_commission_type', '0', 'admin', '2024-10-23 09:36:14', '', NULL, '佣金领取时间类型'); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10023, 0, '每天', '1', 'ff_commission_type', NULL, 'default', 'N', '0', 'admin', '2024-10-23 09:36:31', '', NULL, NULL); - -DROP TABLE IF EXISTS `ff_agent_info`; -CREATE TABLE `ff_agent_info` ( - `id` bigint NOT NULL COMMENT '主键id', - `agent_id` bigint NOT NULL COMMENT '代理id', - `root_id` bigint NULL COMMENT '顶级代理id', - `level` int COMMENT '所属层级', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理信息表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_agent_info` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - -DROP TABLE IF EXISTS `ff_agent_relation`; -CREATE TABLE `ff_agent_relation` ( - `id` bigint NOT NULL COMMENT '主键id', - `root_id` bigint NULL COMMENT '顶级代理id', - `node_relation` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '节点关系', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理关系表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_agent_relation` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - --- 按钮 SQL -INSERT INTO `ff-admin`.`sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10007, '代理模式查询', 10006, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:agentMode:query', '#', 'admin', '2024-10-24 01:09:11', '', NULL, ''); -INSERT INTO `ff-admin`.`sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10008, '代理模式新增', 10006, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:agentMode:add', '#', 'admin', '2024-10-24 01:09:11', '', NULL, ''); -INSERT INTO `ff-admin`.`sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10009, '代理模式修改', 10006, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:agentMode:edit', '#', 'admin', '2024-10-24 01:09:11', '', NULL, ''); -INSERT INTO `ff-admin`.`sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10010, '代理模式删除', 10006, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:agentMode:remove', '#', 'admin', '2024-10-24 01:09:11', '', NULL, ''); -INSERT INTO `ff-admin`.`sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10011, '代理模式导出', 10006, 5, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:agentMode:export', '#', 'admin', '2024-10-24 01:09:11', '', NULL, ''); - - -DROP TABLE IF EXISTS `ff_commission_info`; -CREATE TABLE `ff_commission_info` ( - `id` bigint NOT NULL COMMENT '主键id', - `member_id` bigint NOT NULL COMMENT '会员id', - `currency_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '币种', - `total_amount` decimal(10, 2) DEFAULT NULL COMMENT '累计佣金', - `total_withdrawn` decimal(10, 2) DEFAULT NULL COMMENT '累计提现', - `total_no_withdrawn` decimal(10, 2) DEFAULT NULL COMMENT '累计未提现', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '佣金信息表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_commission_info` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - - -DROP TABLE IF EXISTS `ff_commission_flow_detail`; -CREATE TABLE `ff_commission_flow_detail` ( - `id` bigint NOT NULL COMMENT '主键id', - `member_id` bigint NOT NULL COMMENT '会员id', - `currency_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '币种', - `amount` decimal(10, 2) DEFAULT NULL COMMENT '佣金', - `withdrawn` decimal(10, 2) DEFAULT NULL COMMENT '提现金额', - `settle_status` tinyint DEFAULT 0 COMMENT '结算状态(0未提现,1已提现)', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '佣金流水明细表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_commission_flow_detail` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10010, '领取方式', 'ff_receive_way', '0', 'admin', '2024-11-01 05:23:51', '', NULL, '领取方式'); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10024, 0, '自动派发', '1', 'ff_receive_way', NULL, 'default', 'N', '0', 'admin', '2024-11-01 05:24:20', '', NULL, NULL); - - -ALTER TABLE `ff_agent_level` - MODIFY COLUMN `total_commission` decimal(16, 2) NULL DEFAULT NULL COMMENT '晋升等级佣金标准' AFTER `level`; -ALTER TABLE `ff_settlement_setting` - MODIFY COLUMN `min_valid_bet` decimal(16, 2) NULL DEFAULT NULL COMMENT '有效投注金额' AFTER `agent_audit_rate`; -ALTER TABLE `ff_settlement_setting` - MODIFY COLUMN `min_valid_recharge` decimal(16, 2) NULL DEFAULT NULL COMMENT '结算周期内充值金额' AFTER `min_valid_bet`; -ALTER TABLE `ff_settlement_setting` - MODIFY COLUMN `day_commission_limit` decimal(16, 2) NULL DEFAULT NULL COMMENT '日结模式上限' AFTER `min_valid_recharge`; -ALTER TABLE `ff_settlement_setting` - MODIFY COLUMN `week_commission_limit` decimal(16, 2) NULL DEFAULT NULL COMMENT '周结模式上限' AFTER `day_commission_limit`; -ALTER TABLE `ff_settlement_setting` - MODIFY COLUMN `month_commission_limit` decimal(16, 2) NULL DEFAULT NULL COMMENT '月结模式上限' AFTER `week_commission_limit`; -ALTER TABLE `ff_commission_info` - MODIFY COLUMN `total_amount` decimal(16, 2) NULL DEFAULT NULL COMMENT '累计佣金' AFTER `currency_type`; -ALTER TABLE `ff_commission_info` - MODIFY COLUMN `total_withdrawn` decimal(16, 2) NULL DEFAULT NULL COMMENT '累计提现' AFTER `total_amount`; -ALTER TABLE `ff_commission_info` - MODIFY COLUMN `total_no_withdrawn` decimal(16, 2) NULL DEFAULT NULL COMMENT '累计未提现' AFTER `total_withdrawn`; -ALTER TABLE `ff_commission_flow_detail` - MODIFY COLUMN `amount` decimal(16, 2) NULL DEFAULT NULL COMMENT '佣金' AFTER `currency_type`; -ALTER TABLE `ff_commission_flow_detail` - MODIFY COLUMN `withdrawn` decimal(16, 2) NULL DEFAULT NULL COMMENT '提现金额' AFTER `amount`; - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10011, '代理提佣方式', 'ff_commission_way', '0', 'admin', '2024-11-05 06:31:53', '', NULL, '代理提佣方式'); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10025, 0, '不限制(自由领取)', '0', 'ff_commission_way', NULL, 'default', 'N', '0', 'admin', '2024-11-05 06:32:13', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10026, 1, '禁止所有提佣(含下级,私下结算)', '1', 'ff_commission_way', NULL, 'default', 'N', '0', 'admin', '2024-11-05 06:32:23', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10027, 2, '禁止本人提佣(私下结算)', '2', 'ff_commission_way', NULL, 'default', 'N', '0', 'admin', '2024-11-05 06:32:34', '', NULL, NULL); - -INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10012, '佣金返利类型', 'ff_rebate_type', '0', 'admin', '2024-11-05 09:16:42', '', NULL, '佣金返利类型'); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10028, 1, '有效投注', '1', 'ff_rebate_type', NULL, 'default', 'N', '0', 'admin', '2024-11-05 09:17:34', '', NULL, NULL); -INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10029, 2, '净盈利', '2', 'ff_rebate_type', NULL, 'default', 'N', '0', 'admin', '2024-11-05 09:18:02', '', NULL, NULL); - - -DROP TABLE IF EXISTS `ff_rebate_setting`; -CREATE TABLE `ff_rebate_setting` ( - `id` bigint NOT NULL COMMENT '主键id', - `game_type` bigint DEFAULT NULL COMMENT '游戏类型', - `calc_performance` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '佣金计算依据', - `valid_num` int DEFAULT NULL COMMENT '有效人数', - `commission` decimal(16, 2) DEFAULT NULL COMMENT '佣金金额', - `commission_rate` decimal(10, 2) DEFAULT NULL COMMENT '佣金比例', - `min_amount` decimal(16, 2) DEFAULT NULL COMMENT '最小金额', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '返佣设置表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_rebate_setting` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; - -delete from sys_menu where menu_name like '返佣设置%'; - -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10018, '返佣设置', 3051, 1, 'rebateSetting', 'agent/rebateSetting/index', NULL, '', 1, 0, 'C', '0', '0', 'agent:rebateSetting:list', '#', 'admin', '2024-11-06 03:28:17', '', NULL, '返佣设置菜单'); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10019, '返佣设置查询', 10018, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:rebateSetting:query', '#', 'admin', '2024-11-06 03:28:17', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10020, '返佣设置新增', 10018, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:rebateSetting:add', '#', 'admin', '2024-11-06 03:28:17', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10021, '返佣设置修改', 10018, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:rebateSetting:edit', '#', 'admin', '2024-11-06 03:28:17', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10022, '返佣设置删除', 10018, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:rebateSetting:remove', '#', 'admin', '2024-11-06 03:28:17', '', NULL, ''); -INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (10023, '返佣设置导出', 10018, 5, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'agent:rebateSetting:export', '#', 'admin', '2024-11-06 03:28:17', '', NULL, ''); - -ALTER TABLE ff_agent_mode ADD COLUMN agent_model_type tinyint DEFAULT NULL COMMENT '代理模式类型' AFTER `pattern_source`; - -ALTER TABLE ff_agent_info ADD COLUMN depth int COMMENT '深度(下级层数)' AFTER `level`; -ALTER TABLE ff_agent_info ADD COLUMN direct_num int COMMENT '直属数' AFTER `depth`; -ALTER TABLE ff_agent_info ADD COLUMN agent_num int COMMENT '代理总数' AFTER `direct_num`; -ALTER TABLE ff_agent_info ADD COLUMN member_num int COMMENT '所有下级的会员数量(下级总数)' AFTER `agent_num`; - - -ALTER TABLE ff_agent_level ADD COLUMN currency_type varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '币种' AFTER `level`; - -DROP TABLE IF EXISTS `ff_agent_level_relation`; -CREATE TABLE `ff_agent_level_relation` ( - `id` bigint NOT NULL COMMENT '主键id', - `member_id` bigint NOT NULL COMMENT '会员id', - `agent_level_id` bigint NOT NULL COMMENT '代理等级id', - `currency_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '币种', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理等级关系表' ROW_FORMAT = Dynamic; - -ALTER TABLE `ff_agent_level_relation` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST; \ No newline at end of file