Compare commits

..

24 Commits

Author SHA1 Message Date
shi fc7ff3a3e0 refactor(game): 将 ApiCFBalanceTransferResponseDTO 中的 bankID可以避免在处理大额交易时可能出现的溢出问题 2025-04-24 15:31:23 +08:00
shi 7f04d31fa1 refactor(game): 将 ApiCFBalanceTransferResponseDTO 中的 bankID 2025-04-24 15:30:56 +08:00
shi 0a02e3b9f6 feat(game): 优化平台列表查询逻辑
- 在查询平台列表时添加了停用状态过滤条件- 仅缓存未停用的平台信息,提高数据准确性
2025-04-24 13:41:38 +08:00
shi da64d2304a feat(game): 优化平台列表查询逻辑
- 在查询平台列表时添加了停用状态过滤条件- 仅缓存未停用的平台信息,提高数据准确性
2025-04-23 14:41:15 +08:00
shi 58064fc479 feat(game): 优化平台列表查询逻辑
- 在查询平台列表时添加了停用状态过滤条件- 仅缓存未停用的平台信息,提高数据准确性
2025-04-23 14:29:31 +08:00
shi 75ede9c934 feat(game): 添加 PP 游戏平台支持
- 新增 PP游戏平台的 API 接口实现类
- 添加 PP 游戏平台的缓存常量和时间点
- 实现 PP游戏平台的会员创建、登录、转账等功能
- 解析 PP 游戏平台的注单记录
- 添加 PP 游戏平台的地址源和成功条件判断
2025-04-21 14:03:07 +08:00
shi 5a62a0c6a5 feat(game): 添加平台管理全部获取接口并优化登录逻辑
- 在 GamePlatformController 中添加了获取所有平台信息的接口
- 优化了 SysLoginController 中的验证码校验逻辑
- 新增了平台服务的依赖注入
- 添加了权限控制注解
2025-04-12 10:13:27 +08:00
shi 16f83851e5 feat(fc): 优化 FC 地址来源
- 在 UrlInfo 类中添加 https 和 host 字段,用于存储 HTTPS 协议和端口信息
- 修改 MyFCAddressSource 类中的 getAddress 方法,使用新的 https 和 host 字段
-通过这些改动,提高了地址信息的灵活性和可配置性
2025-04-12 09:38:51 +08:00
shi e12fd287be refactor(game): 修改游戏 ID 类型并更新相关接口
-将 ApiGameInfoResponseDTO 中的 systemGameId 字段类型从 Long 改为 String
- 在 GameMapper.xml 中添加 game_id 字段的查询
- 更新 GamesPGServiceImpl 中的代码,使用 game.getGameId() 替代 game.getId()
2025-04-11 19:43:01 +08:00
shi f097c0f8aa refactor(game): 修改游戏 ID 类型并更新相关接口
-将 ApiGameInfoResponseDTO 中的 systemGameId 字段类型从 Long 改为 String
- 在 GameMapper.xml 中添加 game_id 字段的查询
- 更新 GamesPGServiceImpl 中的代码,使用 game.getGameId() 替代 game.getId()
2025-04-11 19:15:47 +08:00
shi 82cd1456a5 refactor(game): 修改游戏 ID 类型并更新相关接口
-将 ApiGameInfoResponseDTO 中的 systemGameId 字段类型从 Long 改为 String
- 在 GameMapper.xml 中添加 game_id 字段的查询
- 更新 GamesPGServiceImpl 中的代码,使用 game.getGameId() 替代 game.getId()
2025-04-11 19:08:48 +08:00
shi 908194d767 refactor(game): 恢复 DBSports 实时记录接口时间参数使用
- 重新启用 getRealtimeRecord 接口中 startTime 和 endTime 参数
- 移除测试用的硬编码时间值
-优化代码格式和缩进
2025-04-11 18:14:42 +08:00
shi dda84a866e refactor(game): 恢复 DBSports 实时记录接口时间参数使用
- 重新启用 getRealtimeRecord 接口中 startTime 和 endTime 参数
- 移除测试用的硬编码时间值
-优化代码格式和缩进
2025-04-11 17:28:38 +08:00
shi d2ced1154d refactor(game): 恢复 DBSports 实时记录接口时间参数使用
- 重新启用 getRealtimeRecord 接口中 startTime 和 endTime 参数
- 移除测试用的硬编码时间值
-优化代码格式和缩进
2025-04-11 16:58:57 +08:00
shi 9352c50a22 Merge branch 'main-meitian' into main-pgt 2025-04-11 16:56:37 +08:00
shi 39dcd026c0 fix(game): 修复游戏余额扣除和订单回滚相关问题
- 在扣除余额时增加检查,避免重复回滚增加余额
-调整订单状态更新的定时任务执行频率,从每30分钟改为每5分钟
-优化平台交易状态查询逻辑,避免不必要的错误提示
2025-04-11 16:13:15 +08:00
shi 724d5f8f06 feat(game): 实现余额转移状态查询功能
- 新增余额转移状态查询接口和相关 DTO 类- 完善定时任务处理逻辑,增加步进状态处理
- 优化游戏兑换货币相关逻辑,增加空列表判断
- 修复美天游戏同步记录方法中的类型转换问题
- 完善平台交易服务中的异常处理
2025-04-11 15:47:42 +08:00
shi 88bdfc9c16 refactor(ff-game): 重构游戏余额转移功能
- 移除冗余的平台和货币信息查询逻辑
- 使用 GameExchangeDTO封装余额转移数据
-引入 StepProcessorFactory 处理余额转移步骤
- 实现异步执行余额转移操作
-优化错误处理和日志记录
2025-04-11 15:20:58 +08:00
shi 3236b4ab55 refactor(game): 重构游戏平台交易ID生成逻辑
- 移除 CreateOrderServiceImpl 中的 getTransactionId 方法
- 在每个游戏平台的实现类中添加 getTransactionId 方法,具体实现如下:
  - GamesAEServiceImpl
  - GamesDGServiceImpl
  - GamesFCServiceImpl
  - GamesJILIServiceImpl
  - GamesKMServiceImpl - GamesPGServiceImpl
  - GamesPGTServiceImpl
  - GamesPGXServiceImpl
  - GamesSAServiceImpl
- 更新 DBSportsServiceImpl 和 FBSportsServiceImpl 中的交易ID生成逻辑
- 重构后的交易ID生成逻辑更清晰,每个平台有自己的实现方式
2025-04-11 15:20:45 +08:00
shi 265b626b6e Merge branch 'main-meitian' into main-pgt 2025-04-11 11:03:29 +08:00
shi 537b23a420 refactor(ff-game): 重构 FB 和 SV388 平台的转账逻辑
- 移除 FBSports 和 SV388 平台的重复代码
- 优化交易 ID 生成逻辑,支持不同平台的格式
-调整 CreateOrderServiceImpl 中的平台判断逻辑
- 重构 FBSportsServiceImpl 和 SV388GamesServiceImpl 中的转账方法
2025-04-11 11:03:24 +08:00
shi 9fa259268e Merge branch 'main-meitian' into main-pgt
# Conflicts:
#	ff-base/src/main/java/com/ff/base/enums/ErrorCode.java
#	ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java
2025-04-11 10:56:12 +08:00
shi f32794285a refactor(game): 重构游戏余额转移功能
- 新增抽象步进处理类 AbstractStepProcessor 实现通用的处理和回滚逻辑- 新增具体步进处理实现类 CreateOrderServiceImpl、DeductBalanceServiceImpl 和 AddBalanceServiceImpl
-优化 ApiGameController 中的余额转移接口,采用异步处理方式- 重构 GameExchangeMoneyService 中的插入逻辑,支持更新
- 新增 GameExchangeDTO 用于游戏兑换货币的相关操作
- 更新相关枚举类和 DTO 类以支持新的业务逻辑
2025-04-11 10:52:17 +08:00
shi 6e1afc61b0 refactor(game): 重构游戏列表和金额转移相关逻辑
- 更新了 PGX、SA 和 XK游戏平台的游戏列表获取逻辑- 优化了游戏数据插入和更新的处理流程
- 改进了金额转移的处理方式,增加了状态和步骤记录
-调整了投注记录获取的接口调用方式
- 优化了代码结构,移除了不必要的注释和冗余代码
2025-04-09 09:18:47 +08:00
735 changed files with 18263 additions and 12445 deletions

207
ff-base/pom.xml 100644
View File

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

View File

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

View File

@ -2,13 +2,13 @@ package com.ff.base.aspectj;
import com.ff.base.annotation.DataScope; import com.ff.base.annotation.DataScope;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import com.ff.base.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.SysRole;
import com.ff.base.system.domain.SysUser; 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.utils.SecurityUtils; import com.ff.base.utils.SecurityUtils;
import com.ff.base.utils.StringUtils; import com.ff.base.utils.StringUtils;
import com.ff.base.security.context.PermissionContextHolder;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;

View File

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

View File

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

View File

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

View File

@ -5,8 +5,7 @@ package com.ff.base.constant;
* *
* @author ff * @author ff
*/ */
public class CacheConstants public class CacheConstants {
{
/** /**
* redis key * redis key
*/ */
@ -45,41 +44,109 @@ public class CacheConstants
/** /**
* jili * jili
*/ */
public static final String JILI_GAMES= "jili_games:"; public static final String JILI_GAMES = "jili_games:";
/** /**
* xk * xk
*/ */
public static final String XK_GAMES= "xk_games:"; public static final String XK_GAMES = "xk_games:";
/**
* ae
*/
public static final String AE_GAMES = "ae_games:";
/**
* km
*/
public static final String KM_GAMES = "km_games:";
/**
* pgx
*/
public static final String PGX_GAMES = "pgx_games:";
/** /**
* pg * pg
*/ */
public static final String PG_GAMES= "pg_games:"; public static final String PG_GAMES = "pg_games:";
/** /**
* pp * pgt
*/ */
public static final String PP_GAMES= "pp_games:"; public static final String PGT_GAMES = "pgt_games:";
/** /**
* fc * fc
*/ */
public static final String FC_GAMES= "fc_games:"; public static final String FC_GAMES = "fc_games:";
/** /**
* sa * sa
*/ */
public static final String SA_GAMES= "sa_games:"; public static final String SA_GAMES = "sa_games:";
/** /**
* dg * dg
*/ */
public static final String DG_GAMES= "dg_games:"; public static final String DG_GAMES = "dg_games:";
/**
* fb
*/
public static final String FB_Sports = "fp_sports:";
/**
* db
*/
public static final String DB_Sports = "db_sports:";
/** /**
* pg * pg
*/ */
public static final String PG_GAMES_BET_CURRENCY= "pg_games:bet:currency"; public static final String PG_GAMES_BET_CURRENCY = "pg_games:bet:currency";
/**
* pgtid
*/
public static final String PGT_NEXT_ID = "pgt_next:id:";
/**
* ae
*/
public static final String AE_TIME_FROM= "ae:time:from";
/**
*
*/
public static final String MeiTian_GAMES = "meitian_games:";
public static final String Platform = "platform:";
/**
* km
*/
public static final String KM_USER_TOKEN = "km:user:token:";
/**
* ae
*/
public static final String SV388_TIME_FROM= "sv388:time:from";
public static final String SV388_GAMES = "sv388_games:";
/**
* pp
*/
public static final String PP_GAMES= "pp_games:";
/**
* pp
*/
public static final String PP_TIME_POINT = "pp:time:point:";
} }

View File

@ -1,5 +1,7 @@
package com.ff.base.core.controller; 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.constant.HttpStatus;
import com.ff.base.core.domain.AjaxResult; import com.ff.base.core.domain.AjaxResult;
import com.ff.base.core.domain.model.LoginUser; import com.ff.base.core.domain.model.LoginUser;
@ -11,8 +13,6 @@ import com.ff.base.utils.PageUtils;
import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.SecurityUtils;
import com.ff.base.utils.StringUtils; import com.ff.base.utils.StringUtils;
import com.ff.base.utils.sql.SqlUtil; import com.ff.base.utils.sql.SqlUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.WebDataBinder;

View File

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

View File

@ -1,5 +1,6 @@
package com.ff.base.enums; package com.ff.base.enums;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
/** /**

View File

@ -37,6 +37,7 @@ public enum ErrorCode {
Transfer_Not_Exist(1021, "转帐操作不存在"), Transfer_Not_Exist(1021, "转帐操作不存在"),
Get_Url_Failure(1022, "获取URL失败"), Get_Url_Failure(1022, "获取URL失败"),
Miss_Config(1023, "缺少配置"), Miss_Config(1023, "缺少配置"),
DUPLICATE_ORDER_ID (1024, "重复的订单id"),
; ;
// 获取错误码 // 获取错误码

View File

@ -3,6 +3,7 @@ package com.ff.base.enums;
import lombok.Getter; import lombok.Getter;
import java.util.HashMap;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Stream; import java.util.stream.Stream;

View File

@ -0,0 +1,34 @@
package com.ff.base.enums;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
/**
*
*
* @author shi
* @date 2025/04/08
*/
@Getter
@AllArgsConstructor
public enum GameExchangeStep {
CREATE_ORDER(1, "创建订单"),
DEDUCT_BALANCE(2, "转入提前扣租户余额"),
PLATFORM_TRANSACTION(3, "平台交易成功"),
TENANT_QUOTA_DEDUCTED(4, "转出租户额度增加成功");
private final Integer code;
private final String description;
// 根据 code 获取对应的枚举
public static GameExchangeStep getByCode(int code) {
for (GameExchangeStep step : GameExchangeStep.values()) {
if (step.getCode() == code) {
return step;
}
}
return null;
}
}

View File

@ -1,5 +1,6 @@
package com.ff.base.enums; package com.ff.base.enums;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
/** /**

View File

@ -1,5 +1,7 @@
package com.ff.base.enums; package com.ff.base.enums;
import com.ff.base.exception.base.ApiException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -17,6 +19,7 @@ public enum GamePlatforms {
PGT("PGT", "PGT"), PGT("PGT", "PGT"),
FBSports("FBSports", "FB体育"), FBSports("FBSports", "FB体育"),
SV388("SV388", "SV388真人"), SV388("SV388", "SV388真人"),
PP("PP", "PP"),
DBSports("DBSports", "DB体育"); DBSports("DBSports", "DB体育");
private final String code; private final String code;
@ -27,6 +30,20 @@ public enum GamePlatforms {
this.info = info; this.info = info;
} }
/**
*
*
* @param code
* @return {@link GamePlatforms }
*/
public static GamePlatforms getByCode(String code) {
for (GamePlatforms platform : GamePlatforms.values()) {
if (platform.getCode().equals(code)) {
return platform;
}
}
throw new ApiException(ErrorCode.PLATFORM_NOT_EXIST.getCode());
}
public static List<String> getCodes() { public static List<String> getCodes() {
List<String> result = new ArrayList<>(); List<String> result = new ArrayList<>();

View File

@ -2,9 +2,12 @@ package com.ff.base.enums;
import lombok.Getter; import lombok.Getter;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* ng * ng

View File

@ -1,6 +1,7 @@
package com.ff.base.enums; package com.ff.base.enums;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
/** /**

View File

@ -1,6 +1,7 @@
package com.ff.base.enums; package com.ff.base.enums;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import java.util.Optional; import java.util.Optional;

View File

@ -1,6 +1,8 @@
package com.ff.base.enums; package com.ff.base.enums;
import com.dtflys.forest.annotation.Get;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
/** /**

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