Compare commits
9 Commits
8ffe94204c
...
f35179c8bc
| Author | SHA1 | Date |
|---|---|---|
|
|
f35179c8bc | |
|
|
947d54590a | |
|
|
b35fad13d1 | |
|
|
40208aab98 | |
|
|
22b613ece0 | |
|
|
e2375788b4 | |
|
|
ad40fc712d | |
|
|
f1aa9d26e7 | |
|
|
b7ff4ada0e |
|
|
@ -100,6 +100,8 @@ public class CacheConstants {
|
|||
public static final String MeiTian_GAMES = "meitian_games:";
|
||||
|
||||
|
||||
public static final String Platform = "platform:";
|
||||
|
||||
/**
|
||||
* km用户令牌
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -178,65 +178,6 @@ public class Constants {
|
|||
*/
|
||||
public static final String PASS_PREFIX = "FF_";
|
||||
|
||||
/**
|
||||
* jili 接口请求前缀
|
||||
*/
|
||||
public static final String JILI_API_BASE_URL = "jili.api.base.url";
|
||||
|
||||
/**
|
||||
* ng 接口请求前缀
|
||||
*/
|
||||
public static final String NG_API_BASE_URL = "ng.api.base.url";
|
||||
|
||||
/**
|
||||
* fc-api基本url
|
||||
*/
|
||||
public static final String FC_API_BASE_URL = "fc.api.base.url";
|
||||
|
||||
/**
|
||||
* 吉利测试地址
|
||||
*/
|
||||
public static final String JILI_GAME_DOME = "jili.game.dome";
|
||||
|
||||
/**
|
||||
* xk 接口请求前缀
|
||||
*/
|
||||
public static final String XK_API_BASE_URL = "xk.api.base.url";
|
||||
|
||||
/**
|
||||
* pgx-api基本url
|
||||
*/
|
||||
public static final String PGX_API_BASE_URL = "gpx.api.base.url";
|
||||
|
||||
/**
|
||||
* dg-api基本url
|
||||
*/
|
||||
public static final String DG_API_BASE_URL = "dg.api.base.url";
|
||||
|
||||
/**
|
||||
* ae api基本url
|
||||
*/
|
||||
public static final String AE_API_BASE_URL = "ae.api.base.url";
|
||||
/**
|
||||
* sa-api基本url
|
||||
*/
|
||||
public static final String SA_API_BASE_URL = "sa.api.base.url";
|
||||
|
||||
/**
|
||||
* 美天平台
|
||||
*/
|
||||
public static final String MEITIAN_API_BASE_URL = "meitian.api.base.url";
|
||||
|
||||
|
||||
/**
|
||||
* km-api基本url
|
||||
*/
|
||||
public static final String KM_API_BASE_URL_LOGIN = "km.api.base.url";
|
||||
/**
|
||||
* km-api基本登录url
|
||||
*/
|
||||
public static final String KM_API_BASE_LOGIN_URL = "km.api.base.login.url";
|
||||
|
||||
|
||||
/**
|
||||
* 服务
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ public enum GamePlatforms {
|
|||
FC("FC", "FC"),
|
||||
SA("SA", "SA"),
|
||||
DG("DG", "DG"),
|
||||
MeiTian("MeiTian","美天棋牌"),
|
||||
MT("MT", "美天棋牌"),
|
||||
AE("AE", "AE"),
|
||||
KM("KM", "KM")
|
||||
;
|
||||
|
|
@ -19,16 +19,14 @@ public enum GamePlatforms {
|
|||
private final String code;
|
||||
private final String info;
|
||||
|
||||
GamePlatforms(String code, String info)
|
||||
{
|
||||
GamePlatforms(String code, String info) {
|
||||
this.code = code;
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
|
||||
public static List<String> getCodes()
|
||||
{
|
||||
List<String> result=new ArrayList<>();
|
||||
public static List<String> getCodes() {
|
||||
List<String> result = new ArrayList<>();
|
||||
GamePlatforms[] values = GamePlatforms.values();
|
||||
for (GamePlatforms value : values) {
|
||||
result.add(value.getCode());
|
||||
|
|
@ -36,13 +34,11 @@ public enum GamePlatforms {
|
|||
return result;
|
||||
}
|
||||
|
||||
public String getCode()
|
||||
{
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getInfo()
|
||||
{
|
||||
public String getInfo() {
|
||||
return info;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@ public enum PlatformType {
|
|||
VIDEO(6, "视讯"),
|
||||
LOTTERY(7, "彩票"),
|
||||
SPORTS(8, "体育"),
|
||||
HUNTING(9, "捕猎");
|
||||
HUNTING(9, "捕猎"),
|
||||
BaiRen(10, "百人场");
|
||||
|
||||
private final int code;
|
||||
private final String name;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
package com.ff.base.handler;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* mybatis json字段转换
|
||||
*
|
||||
* @author cengy
|
||||
*/
|
||||
public class JsonHandler<T> extends BaseTypeHandler<T> {
|
||||
private final Class<T> type;
|
||||
|
||||
|
||||
public JsonHandler(Class<T> type) {
|
||||
if (type == null) {
|
||||
throw new IllegalArgumentException("Type argument cannot be null");
|
||||
}
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType) throws SQLException {
|
||||
ps.setString(i, JSON.toJSONString(parameter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
String json = rs.getString(columnName);
|
||||
if (json != null) {
|
||||
return JSON.parseObject(json, type);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||
String json = rs.getString(columnIndex);
|
||||
if (json != null) {
|
||||
return JSON.parseObject(json, type);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||
String json = cs.getString(columnIndex);
|
||||
if (json != null) {
|
||||
return JSON.parseObject(json, type);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
package com.ff.base.handler;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* mybatis json字段转换
|
||||
*
|
||||
* @author cengy
|
||||
*/
|
||||
public class JsonListHandler<T> extends BaseTypeHandler<List<T>> {
|
||||
private final Class<T> type;
|
||||
|
||||
public JsonListHandler(Class<T> type) {
|
||||
if (type == null) {
|
||||
throw new IllegalArgumentException("Type argument cannot be null");
|
||||
}
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, List<T> parameter, JdbcType jdbcType) throws SQLException {
|
||||
// Convert the List<Item> to JSON string
|
||||
String json = JSON.toJSONString(parameter);
|
||||
ps.setString(i, json);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<T> getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
|
||||
String json = rs.getString(columnName);
|
||||
if (json == null) {
|
||||
return null;
|
||||
}
|
||||
return JSON.parseArray(json, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<T> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||
String json = rs.getString(columnIndex);
|
||||
if (json == null) {
|
||||
return null;
|
||||
}
|
||||
return JSON.parseArray(json, type);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<T> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||
String json = cs.getString(columnIndex);
|
||||
if (json == null) {
|
||||
return null;
|
||||
}
|
||||
return JSON.parseArray(json, type);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@ import com.ff.base.constant.Constants;
|
|||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import sun.misc.BASE64Encoder;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
|
|
@ -15,27 +14,23 @@ import java.security.NoSuchAlgorithmException;
|
|||
*
|
||||
* @author ff
|
||||
*/
|
||||
public class Md5Utils
|
||||
{
|
||||
public class Md5Utils {
|
||||
private static final Logger log = LoggerFactory.getLogger(Md5Utils.class);
|
||||
|
||||
private static byte[] md5(String s)
|
||||
{
|
||||
private static byte[] md5(String s) {
|
||||
MessageDigest algorithm;
|
||||
try
|
||||
{
|
||||
try {
|
||||
algorithm = MessageDigest.getInstance("MD5");
|
||||
algorithm.reset();
|
||||
algorithm.update(s.getBytes("UTF-8"));
|
||||
byte[] messageDigest = algorithm.digest();
|
||||
return messageDigest;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
log.error("MD5 Error...", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String md5New(String input) {
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
|
|
@ -63,30 +58,24 @@ public class Md5Utils
|
|||
return null;
|
||||
}
|
||||
String result = "";
|
||||
try{
|
||||
try {
|
||||
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
||||
BASE64Encoder base64en = new BASE64Encoder();
|
||||
result = base64en.encode(md5.digest(str.getBytes(StandardCharsets.UTF_8)));
|
||||
}catch (Exception e){
|
||||
log.error("encoderByMd5...{0}", str, e);
|
||||
result = Base64.encode(md5.digest(str.getBytes(StandardCharsets.UTF_8)));
|
||||
} catch (Exception e) {
|
||||
log.error("encoderByMd5...{}", str, e);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private static final String toHex(byte hash[])
|
||||
{
|
||||
if (hash == null)
|
||||
{
|
||||
private static final String toHex(byte hash[]) {
|
||||
if (hash == null) {
|
||||
return null;
|
||||
}
|
||||
StringBuffer buf = new StringBuffer(hash.length * 2);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < hash.length; i++)
|
||||
{
|
||||
if ((hash[i] & 0xff) < 0x10)
|
||||
{
|
||||
for (i = 0; i < hash.length; i++) {
|
||||
if ((hash[i] & 0xff) < 0x10) {
|
||||
buf.append("0");
|
||||
}
|
||||
buf.append(Long.toString(hash[i] & 0xff, 16));
|
||||
|
|
@ -94,15 +83,11 @@ public class Md5Utils
|
|||
return buf.toString();
|
||||
}
|
||||
|
||||
public static String hash(String s)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new String(toHex(md5(Constants.PASS_PREFIX +s)).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
log.error("not supported charset...{}", e);
|
||||
public static String hash(String s) {
|
||||
try {
|
||||
return new String(toHex(md5(Constants.PASS_PREFIX + s)).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8);
|
||||
} catch (Exception e) {
|
||||
log.error("not supported charset...", e);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- spring-boot-devtools -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.ff.api.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.ff.annotation.CheckHeader;
|
||||
import com.ff.api.request.*;
|
||||
import com.ff.api.response.*;
|
||||
|
|
@ -9,12 +8,11 @@ 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.enums.ErrorCode;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.domain.TenantSecretKey;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.base.utils.bean.BeanUtils;
|
||||
import com.ff.base.system.domain.TenantSecretKey;
|
||||
import com.ff.common.dto.GameBalanceExchange;
|
||||
import com.ff.common.service.ITenantGameQuotaFlowService;
|
||||
import com.ff.common.service.ITenantGameQuotaService;
|
||||
|
|
@ -23,18 +21,16 @@ import com.ff.game.api.IGamesService;
|
|||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameBettingDetailsDTO;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyLangDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
|
@ -45,10 +41,9 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* api控制器
|
||||
|
|
@ -74,16 +69,9 @@ public class ApiGameController extends BaseController {
|
|||
@Resource
|
||||
private KeyConfig keyConfig;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private ITenantGameQuotaService tenantGameQuotaService;
|
||||
|
||||
|
|
@ -98,17 +86,12 @@ public class ApiGameController extends BaseController {
|
|||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyLangService gameSecretKeyLangService;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("threadPoolTaskExecutor")
|
||||
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
||||
|
||||
@Resource
|
||||
private IPlatformService platformService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
|
|
@ -118,11 +101,20 @@ public class ApiGameController extends BaseController {
|
|||
@PostMapping("/list")
|
||||
public AjaxResult list() {
|
||||
List<GameResponse> gameResponses = gameService.selectGameResponseList();
|
||||
for (GameResponse gameRespons : gameResponses) {
|
||||
for (GameResponse gameResponse : gameResponses) {
|
||||
Platform platform = platformService.get(gameResponse.getPlatformCode());
|
||||
if (null == platform) {
|
||||
continue;
|
||||
}
|
||||
// List<GameSecretKeyCurrencyDTO> gameSecretKeyCurrencies =
|
||||
// gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(
|
||||
// GameSecretKeyCurrencyDTO.builder().platformCode(gameResponse.getPlatformCode())
|
||||
// .build()
|
||||
// );
|
||||
// List<String> currencyCode = gameSecretKeyCurrencies.stream().map(GameSecretKeyCurrencyDTO::getSystemCurrency).collect(Collectors.toList());
|
||||
|
||||
List<GameSecretKeyCurrencyDTO> gameSecretKeyCurrencies = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder().platformCode(gameRespons.getPlatformCode()).build());
|
||||
List<String> currencyCode = gameSecretKeyCurrencies.stream().map(GameSecretKeyCurrencyDTO::getSystemCurrency).collect(Collectors.toList());
|
||||
gameRespons.setCurrencyCode(currencyCode);
|
||||
List<String> currencyCode = new ArrayList<>(platform.getCurrencyInfo().keySet());
|
||||
gameResponse.setCurrencyCode(currencyCode);
|
||||
}
|
||||
return AjaxResult.success(gameResponses);
|
||||
}
|
||||
|
|
@ -131,50 +123,69 @@ public class ApiGameController extends BaseController {
|
|||
/**
|
||||
* 登录
|
||||
*
|
||||
* @param memberCreateApiRequest 成员创建api请求
|
||||
* @param loginRequest 登入游戏
|
||||
* @return {@link AjaxResult }
|
||||
*/
|
||||
@PostMapping("/login")
|
||||
public AjaxResult login(@Validated @RequestBody GameLoginRequest memberCreateApiRequest) {
|
||||
public AjaxResult login(@Validated @RequestBody GameLoginRequest loginRequest) {
|
||||
|
||||
Game game = gameService.selectGameById(memberCreateApiRequest.getGameId());
|
||||
Game game = gameService.selectGameById(loginRequest.getGameId());
|
||||
ApiException.notNull(game, ErrorCode.GAME_NOT_EXIST.getCode());
|
||||
|
||||
GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(game.getPlatformId());
|
||||
ApiException.notNull(gamePlatform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
Platform platform = platformService.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());
|
||||
|
||||
String targetCurrency = platform.getCurrencyInfo().get(loginRequest.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(loginRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(loginRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
String targetLang = platform.getLangInfo().get(loginRequest.getLangCode());
|
||||
ApiException.notNull(targetLang, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
// TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
// GameSecretKeyCurrencyDTO secretKeyCurrencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gamePlatform.getPlatformCode())
|
||||
// .systemCurrency(memberCreateApiRequest.getCurrencyCode()).build());
|
||||
// ApiException.notNull(secretKeyCurrencyDTO, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
// GameSecretKeyLangDTO gameSecretKeyLangDTO = gameSecretKeyLangService.findGameSecretKeyLangDTO(GameSecretKeyLangDTO.builder()
|
||||
// .platformCode(gamePlatform.getPlatformCode())
|
||||
// .systemLangCode(memberCreateApiRequest.getLangCode())
|
||||
// .build());
|
||||
// ApiException.notNull(gameSecretKeyLangDTO, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gamePlatform.getPlatformCode() + Constants.SERVICE);
|
||||
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
GameSecretKeyCurrencyDTO secretKeyCurrencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gamePlatform.getPlatformCode())
|
||||
.systemCurrency(memberCreateApiRequest.getCurrencyCode()).build());
|
||||
ApiException.notNull(secretKeyCurrencyDTO, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
GameSecretKeyLangDTO gameSecretKeyLangDTO = gameSecretKeyLangService.findGameSecretKeyLangDTO(GameSecretKeyLangDTO.builder()
|
||||
.platformCode(gamePlatform.getPlatformCode())
|
||||
.systemLangCode(memberCreateApiRequest.getLangCode())
|
||||
.build());
|
||||
ApiException.notNull(gameSecretKeyLangDTO, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
Member member = memberService.selectMemberByAccount(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode(), gamePlatform.getPlatformCode());
|
||||
Member member = memberService.selectMemberByAccount(loginRequest.getAccount(), loginRequest.getCurrencyCode(), platform.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
GamesLogin gamesLogin = GamesLogin.builder()
|
||||
.agentId(secretKeyCurrencyDTO.getCode())
|
||||
.agentKey(secretKeyCurrencyDTO.getKey())
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.account(member.getGameAccount())
|
||||
.gameType(game.getGameSourceType())
|
||||
.currency(secretKeyCurrencyDTO.getCurrency())
|
||||
.currency(/*secretKeyCurrencyDTO.getCurrency()*/targetCurrency)
|
||||
.gameId(game.getGameCode())
|
||||
.homeUrl(memberCreateApiRequest.getHomeUrl())
|
||||
.betLimit(memberCreateApiRequest.getBetLimit())
|
||||
.platform(memberCreateApiRequest.getPlatform())
|
||||
.disableFullScreen(memberCreateApiRequest.getDisableFullScreen())
|
||||
.lang(gameSecretKeyLangDTO.getLang())
|
||||
.homeUrl(loginRequest.getHomeUrl())
|
||||
.betLimit(loginRequest.getBetLimit())
|
||||
.platform(loginRequest.getPlatform())
|
||||
.disableFullScreen(loginRequest.getDisableFullScreen())
|
||||
.lang(/*gameSecretKeyLangDTO.getLang()*/ targetLang)
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(loginRequest.getCurrencyCode())
|
||||
|
||||
.build();
|
||||
|
||||
String login = iGamesService.loginWithoutRedirect(gamesLogin);
|
||||
|
|
@ -193,26 +204,47 @@ public class ApiGameController extends BaseController {
|
|||
@Transactional
|
||||
public AjaxResult exchangeBalance(@Validated @RequestBody GameExchangeBalanceRequest gameExchangeBalanceRequest) {
|
||||
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gameExchangeBalanceRequest.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameExchangeBalanceRequest.getPlatformCode())
|
||||
.systemCurrency(gameExchangeBalanceRequest.getCurrencyCode()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameExchangeBalanceRequest.getPlatformCode())
|
||||
// .systemCurrency(gameExchangeBalanceRequest.getCurrencyCode()).build());
|
||||
//
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
Platform platform = platformService.get(gameExchangeBalanceRequest.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
String targetCurrency = platform.getCurrencyInfo().get(gameExchangeBalanceRequest.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(gameExchangeBalanceRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(gameExchangeBalanceRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
BigDecimal 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());
|
||||
|
||||
// 获取用户信息
|
||||
|
|
@ -222,15 +254,19 @@ public class ApiGameController extends BaseController {
|
|||
|
||||
//操作第三方额度接口
|
||||
ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO = ExchangeTransferMoneyRequestDTO.builder()
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.orderId(gameExchangeBalanceRequest.getOrderId())
|
||||
.account(member.getGameAccount())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.currency(/*gameSecretKey.getCurrency()*/targetCurrency)
|
||||
.tenantKey(tenantSecretKey.getTenantKey())
|
||||
.quota(quota)
|
||||
.amount(gameExchangeBalanceRequest.getAmount())
|
||||
.transferType(gameExchangeBalanceRequest.getTransferType())
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(gameExchangeBalanceRequest.getCurrencyCode())
|
||||
|
||||
.build();
|
||||
Long exchangeTransferId = iGamesService.exchangeTransferByAgentId(exchangeTransferMoneyRequestDTO);
|
||||
GameExchangeMoney gameExchangeMoney = gameExchangeMoneyService.selectGameExchangeMoneyById(exchangeTransferId);
|
||||
|
|
@ -276,12 +312,27 @@ public class ApiGameController extends BaseController {
|
|||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameCreateFreeSpinRequest.getPlatformCode())
|
||||
.systemCurrency(gameCreateFreeSpinRequest.getCurrencyCode()).build());
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
// TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameCreateFreeSpinRequest.getPlatformCode())
|
||||
// .systemCurrency(gameCreateFreeSpinRequest.getCurrencyCode()).build());
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
Platform platform = platformService.get(gameCreateFreeSpinRequest.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
String targetCurrency = platform.getCurrencyInfo().get(gameCreateFreeSpinRequest.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(gameCreateFreeSpinRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(gameCreateFreeSpinRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
Member member = memberService.selectMemberByAccount(gameCreateFreeSpinRequest.getAccount(), gameCreateFreeSpinRequest.getCurrencyCode(), gameCreateFreeSpinRequest.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
|
@ -289,15 +340,18 @@ public class ApiGameController extends BaseController {
|
|||
|
||||
CreateFreeSpinRequestDTO createFreeSpinRequestDTO = CreateFreeSpinRequestDTO.builder()
|
||||
.account(member.getGameAccount())
|
||||
.currency(gameCreateFreeSpinRequest.getCurrencyCode())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.currency(/*gameCreateFreeSpinRequest.getCurrencyCode()*/targetCurrency)
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.referenceId(gameCreateFreeSpinRequest.getReferenceId())
|
||||
.freeSpinValidity(gameCreateFreeSpinRequest.getFreeSpinValidity())
|
||||
.numberOfRounds(gameCreateFreeSpinRequest.getNumberOfRounds())
|
||||
.gameIds(gameCreateFreeSpinRequest.getGameIds())
|
||||
.betValue(gameCreateFreeSpinRequest.getBetValue())
|
||||
.startTime(gameCreateFreeSpinRequest.getStartTime())
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(gameCreateFreeSpinRequest.getCurrencyCode())
|
||||
.build();
|
||||
|
||||
|
||||
|
|
@ -350,32 +404,53 @@ public class ApiGameController extends BaseController {
|
|||
*/
|
||||
@PostMapping("/get/detail")
|
||||
public AjaxResult getDetail(@Validated @RequestBody GameGetDetailRequest gameGetDetailRequest) {
|
||||
Platform platform = platformService.get(gameGetDetailRequest.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
String targetCurrency = platform.getCurrencyInfo().get(gameGetDetailRequest.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(gameGetDetailRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(gameGetDetailRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
String targetLang = platform.getLangInfo().get(gameGetDetailRequest.getLangCode());
|
||||
ApiException.notNull(targetLang, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameGetDetailRequest.getPlatformCode())
|
||||
// .systemCurrency(gameGetDetailRequest.getCurrencyCode()).build());
|
||||
|
||||
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameGetDetailRequest.getPlatformCode())
|
||||
.systemCurrency(gameGetDetailRequest.getCurrencyCode()).build());
|
||||
|
||||
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gameGetDetailRequest.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
GameSecretKeyLangDTO gameSecretKeyLang = gameSecretKeyLangService.findGameSecretKeyLangDTO(GameSecretKeyLangDTO.builder()
|
||||
.platformCode(gameGetDetailRequest.getPlatformCode())
|
||||
.systemLangCode(gameGetDetailRequest.getLangCode())
|
||||
.build());
|
||||
ApiException.notNull(gameSecretKeyLang, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
// GameSecretKeyLangDTO gameSecretKeyLang = gameSecretKeyLangService.findGameSecretKeyLangDTO(GameSecretKeyLangDTO.builder()
|
||||
// .platformCode(gameGetDetailRequest.getPlatformCode())
|
||||
// .systemLangCode(gameGetDetailRequest.getLangCode())
|
||||
// .build());
|
||||
// ApiException.notNull(gameSecretKeyLang, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
GetGameDetailResponseDTO gameDetail = iGamesService.getGameDetail(GetGameDetailRequestDTO.builder()
|
||||
.wagersId(gameGetDetailRequest.getWagersId())
|
||||
.lang(gameSecretKeyLang.getLang())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.lang(/*gameSecretKeyLang.getLang()*/targetLang)
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(gameGetDetailRequest.getCurrencyCode())
|
||||
.build());
|
||||
return AjaxResult.success(gameDetail);
|
||||
}
|
||||
|
|
@ -388,44 +463,82 @@ public class ApiGameController extends BaseController {
|
|||
*/
|
||||
@PostMapping("/kick/member")
|
||||
public AjaxResult kickMember(@Validated @RequestBody GameKickMemeberRequest gameKickMemeberRequest) {
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameKickMemeberRequest.getPlatformCode())
|
||||
.systemCurrency(gameKickMemeberRequest.getCurrencyCode()).build());
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameKickMemeberRequest.getPlatformCode())
|
||||
// .systemCurrency(gameKickMemeberRequest.getCurrencyCode()).build());
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
Platform platform = platformService.get(gameKickMemeberRequest.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
Member member = memberService.selectMemberByAccount(gameKickMemeberRequest.getAccount(), gameKickMemeberRequest.getCurrencyCode(), gameKickMemeberRequest.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
String targetCurrency = platform.getCurrencyInfo().get(gameKickMemeberRequest.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(gameKickMemeberRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(gameKickMemeberRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gameKickMemeberRequest.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
Member member = memberService.selectMemberByAccount(gameKickMemeberRequest.getAccount(), gameKickMemeberRequest.getCurrencyCode(), gameKickMemeberRequest.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
return AjaxResult.success(iGamesService.kickMember(KickMemberRequestDTO.builder()
|
||||
.account(member.getGameAccount())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.agentId(keyInfo.getCode())
|
||||
.currency(targetCurrency)
|
||||
.agentKey(keyInfo.getKey())
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(gameKickMemeberRequest.getCurrencyCode())
|
||||
.build()));
|
||||
}
|
||||
|
||||
@PostMapping("/kick/member/all")
|
||||
public AjaxResult kickMemberAll(@Validated @RequestBody GameKickMemeberAllRequest gameKickMemeberAllRequest) {
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameKickMemeberAllRequest.getPlatformCode())
|
||||
.systemCurrency(gameKickMemeberAllRequest.getCurrencyCode()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameKickMemeberAllRequest.getPlatformCode())
|
||||
// .systemCurrency(gameKickMemeberAllRequest.getCurrencyCode()).build());
|
||||
//
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
Platform platform = platformService.get(gameKickMemeberAllRequest.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
String targetCurrency = platform.getCurrencyInfo().get(gameKickMemeberAllRequest.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(gameKickMemeberAllRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(gameKickMemeberAllRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gameKickMemeberAllRequest.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
KickMemberAllDTO kickMemberAllDTO = KickMemberAllDTO.builder()
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.currency(/*gameSecretKey.getCurrency()*/targetCurrency)
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(gameKickMemeberAllRequest.getCurrencyCode())
|
||||
.build();
|
||||
if (!ObjectUtils.isEmpty(gameKickMemeberAllRequest.getGameId())) {
|
||||
Game game = gameService.selectGameById(gameKickMemeberAllRequest.getGameId());
|
||||
|
|
@ -474,23 +587,43 @@ public class ApiGameController extends BaseController {
|
|||
/**
|
||||
* 取消自由旋转
|
||||
*
|
||||
* @param gameGetFreeSpinDashflowRequest 游戏获得免费旋转dashflow请求
|
||||
* @param request 游戏获得免费旋转dashflow请求
|
||||
* @return {@link TableDataInfo }
|
||||
*/
|
||||
@PostMapping("/cancel/free/spin")
|
||||
public AjaxResult cancelFreeSpin(@Validated @RequestBody GameCancelFreeSpinRequest gameGetFreeSpinDashflowRequest) {
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameGetFreeSpinDashflowRequest.getPlatformCode())
|
||||
.systemCurrency(gameGetFreeSpinDashflowRequest.getCurrencyCode()).build());
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
public AjaxResult cancelFreeSpin(@Validated @RequestBody GameCancelFreeSpinRequest request) {
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameGetFreeSpinDashflowRequest.getPlatformCode())
|
||||
// .systemCurrency(gameGetFreeSpinDashflowRequest.getCurrencyCode()).build());
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gameGetFreeSpinDashflowRequest.getPlatformCode() + Constants.SERVICE);
|
||||
Platform platform = platformService.get(request.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
String targetCurrency = platform.getCurrencyInfo().get(request.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(request.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(request.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
IGamesService iGamesService = gamesService.get(request.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
Boolean cancelFreeSpin = iGamesService.cancelFreeSpin(CancelFreeSpinRequestDTO.builder()
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.referenceId(gameGetFreeSpinDashflowRequest.getReferenceId())
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.referenceId(request.getReferenceId())
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(request.getCurrencyCode())
|
||||
.build());
|
||||
return AjaxResult.success(cancelFreeSpin);
|
||||
}
|
||||
|
|
@ -498,45 +631,80 @@ public class ApiGameController extends BaseController {
|
|||
/**
|
||||
* 信息全部
|
||||
*
|
||||
* @param gameExchangeBalanceAllRequest 成员信息所有api请求
|
||||
* @param request 成员信息所有api请求
|
||||
* @return {@link AjaxResult }
|
||||
*/
|
||||
*//*
|
||||
@PostMapping("/exchange/balance/all")
|
||||
public AjaxResult exchangeBalanceAll(@Validated @RequestBody GameExchangeBalanceAllRequest gameExchangeBalanceAllRequest) {
|
||||
public AjaxResult exchangeBalanceAll(@Validated @RequestBody GameExchangeBalanceAllRequest request) {
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
|
||||
// List<GameSecretKeyCurrencyDTO> gameSecretKeys = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
// .systemCurrency(gameExchangeBalanceAllRequest.getCurrencyCode()).build());
|
||||
|
||||
List<GameSecretKeyCurrencyDTO> gameSecretKeys = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
.systemCurrency(gameExchangeBalanceAllRequest.getCurrencyCode()).build());
|
||||
|
||||
List<Key> keys = new ArrayList<>();
|
||||
for (GamePlatforms platformEnum : GamePlatforms.values()) {
|
||||
|
||||
Platform platform = platformService.get(platformEnum.getCode());
|
||||
String targetCurrency = platform.getCurrencyInfo().get(request.getCurrencyCode());
|
||||
if (StringUtils.isEmpty(targetCurrency)) {
|
||||
continue;
|
||||
}
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(request.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(request.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null == keyInfo) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Key key = new Key();
|
||||
key.setPlatformCode(platform.getPlatformCode());
|
||||
key.setCode(keyInfo.getCode());
|
||||
key.setKey(keyInfo.getKey());
|
||||
key.setCurrency(targetCurrency);
|
||||
key.setPlatform(platform);
|
||||
key.setKeyInfo(keyInfo);
|
||||
key.setSystemCurrency(request.getCurrencyCode());
|
||||
keys.add(key);
|
||||
}
|
||||
|
||||
// 创建线程池
|
||||
Map<String, BigDecimal> balanceMap = new LinkedHashMap<>();
|
||||
CountDownLatch latch = new CountDownLatch(gameSecretKeys.size());
|
||||
CountDownLatch latch = new CountDownLatch(keys.size());
|
||||
|
||||
// 使用List存储Future对象,用于获取异步执行的结果
|
||||
List<Future<Long>> futures = new ArrayList<>();
|
||||
|
||||
// 提交异步任务到线程池
|
||||
for (GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO : gameSecretKeys) {
|
||||
// for (GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO : gameSecretKeys) {
|
||||
for (Key key : keys) {
|
||||
futures.add(threadPoolTaskExecutor.submit(() -> {
|
||||
try {
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gameSecretKeyCurrencyDTO.getPlatformCode() + Constants.SERVICE);
|
||||
IGamesService iGamesService = gamesService.get(key.getPlatformCode() + Constants.SERVICE);
|
||||
|
||||
Member member = memberService.selectMemberByAccount(gameExchangeBalanceAllRequest.getAccount(), gameExchangeBalanceAllRequest.getCurrencyCode(), gameSecretKeyCurrencyDTO.getPlatformCode());
|
||||
Member member = memberService.selectMemberByAccount(request.getAccount(), request.getCurrencyCode(), key.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
//操作第三方钱包
|
||||
ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO = ExchangeTransferMoneyRequestDTO.builder()
|
||||
.agentId(gameSecretKeyCurrencyDTO.getCode())
|
||||
.agentKey(gameSecretKeyCurrencyDTO.getKey())
|
||||
.orderId(gameExchangeBalanceAllRequest.getOrderId())
|
||||
.agentId(key.getCode())
|
||||
.agentKey(key.getKey())
|
||||
.orderId(request.getOrderId())
|
||||
.amount(BigDecimal.ONE)
|
||||
.currency(gameSecretKeyCurrencyDTO.getCurrency())
|
||||
.currency(*//*gameSecretKeyCurrencyDTO.getCurrency()*//*key.currency)
|
||||
.tenantKey(tenantSecretKey.getTenantKey())
|
||||
.account(member.getGameAccount())
|
||||
.vendor(key.getPlatform())
|
||||
.keyInfo(key.getKeyInfo())
|
||||
.systemCurrency(key.systemCurrency)
|
||||
.transferType(TransferType.ALL.getCode())
|
||||
.build();
|
||||
return iGamesService.exchangeTransferByAgentId(exchangeTransferMoneyRequestDTO);
|
||||
|
|
@ -571,11 +739,15 @@ public class ApiGameController extends BaseController {
|
|||
tenantGameQuotaService.gameBalanceExchange(GameBalanceExchange.builder()
|
||||
.platformCode(gameExchangeMoney.getPlatformCode())
|
||||
.currencyCode(gameExchangeMoney.getCurrencyCode())
|
||||
.sourceId(gameExchangeBalanceAllRequest.getOrderId())
|
||||
.sourceId(request.getOrderId())
|
||||
.transferType(TransferType.ALL.getCode())
|
||||
.amount(gameExchangeMoney.getBalance())
|
||||
.account(member.getMemberAccount())
|
||||
.tenantKey(tenantSecretKey.getTenantKey())
|
||||
.currency()
|
||||
.systemCurrency(gameExchangeMoney.getCurrencyCode())
|
||||
.agentId()
|
||||
.agentKey()
|
||||
.build());
|
||||
|
||||
}
|
||||
|
|
@ -587,39 +759,61 @@ public class ApiGameController extends BaseController {
|
|||
|
||||
|
||||
return AjaxResult.success(balanceMap);
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
/**
|
||||
* 演示登录
|
||||
*
|
||||
* @param gameDemoLoginRequest 游戏演示登录请求
|
||||
* @param request 游戏演示登录请求
|
||||
* @return {@link AjaxResult }
|
||||
*/
|
||||
@PostMapping("/demo/login")
|
||||
public AjaxResult demoLogin(@Validated @RequestBody GameDemoLoginRequest gameDemoLoginRequest) {
|
||||
public AjaxResult demoLogin(@Validated @RequestBody GameDemoLoginRequest request) {
|
||||
|
||||
Game game = gameService.selectGameById(gameDemoLoginRequest.getGameId());
|
||||
Game game = gameService.selectGameById(request.getGameId());
|
||||
ApiException.notNull(game, ErrorCode.GAME_NOT_EXIST.getCode());
|
||||
|
||||
GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(game.getPlatformId());
|
||||
ApiException.notNull(gamePlatform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
//GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(game.getPlatformId());
|
||||
//ApiException.notNull(gamePlatform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
Platform platform = platformService.get(game.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
IGamesService iGamesService = gamesService.get(gamePlatform.getPlatformCode() + Constants.SERVICE);
|
||||
IGamesService iGamesService = gamesService.get(platform.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
String targetCurrency = platform.getCurrencyInfo().get(request.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
GameSecretKeyLangDTO gameSecretKeyLangDTO = gameSecretKeyLangService.findGameSecretKeyLangDTO(GameSecretKeyLangDTO.builder()
|
||||
.platformCode(gamePlatform.getPlatformCode())
|
||||
.systemLangCode(gameDemoLoginRequest.getLangCode())
|
||||
.build());
|
||||
ApiException.notNull(gameSecretKeyLangDTO, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(request.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(request.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
String targetLang = platform.getLangInfo().get(request.getLangCode());
|
||||
ApiException.notNull(targetLang, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
// GameSecretKeyLangDTO gameSecretKeyLangDTO = gameSecretKeyLangService.findGameSecretKeyLangDTO(GameSecretKeyLangDTO.builder()
|
||||
// .platformCode(gamePlatform.getPlatformCode())
|
||||
// .systemLangCode(gameDemoLoginRequest.getLangCode())
|
||||
// .build());
|
||||
// ApiException.notNull(gameSecretKeyLangDTO, ErrorCode.LANG_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
GameDemoLoginRequestDTO gamesLogin = GameDemoLoginRequestDTO.builder()
|
||||
.gameId(game.getGameCode())
|
||||
.gameType(game.getGameSourceType())
|
||||
.lang(gameSecretKeyLangDTO.getLang())
|
||||
.lang(/*gameSecretKeyLangDTO.getLang()*/targetLang)
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(request.getCurrencyCode())
|
||||
.build();
|
||||
|
||||
GameDemoLoginResponseDTO gameDemoLoginResponseDTO = iGamesService.gameDemoLogin(gamesLogin);
|
||||
|
|
@ -627,4 +821,15 @@ public class ApiGameController extends BaseController {
|
|||
BeanUtils.copyProperties(gameDemoLoginResponseDTO, gameDemoLoginResponse);
|
||||
return AjaxResult.success(gameDemoLoginResponse);
|
||||
}
|
||||
|
||||
@Data
|
||||
class Key {
|
||||
private String platformCode;
|
||||
private String code;
|
||||
private String currency;
|
||||
private String key;
|
||||
private Platform platform;
|
||||
private KeyInfo keyInfo;
|
||||
private String systemCurrency;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,20 +11,22 @@ import com.ff.base.constant.Constants;
|
|||
import com.ff.base.core.controller.BaseController;
|
||||
import com.ff.base.core.domain.AjaxResult;
|
||||
import com.ff.base.enums.ErrorCode;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.base.system.domain.TenantSecretKey;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.config.KeyConfig;
|
||||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.IGameSecretKeyCurrencyService;
|
||||
import com.ff.game.service.IGameSecretKeyService;
|
||||
import com.ff.game.service.IGameService;
|
||||
import com.ff.game.api.request.CreateMemberRequestDTO;
|
||||
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.IPlatformService;
|
||||
import com.ff.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -32,10 +34,12 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -58,31 +62,21 @@ import java.util.concurrent.Future;
|
|||
@Slf4j
|
||||
public class ApiMemberController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private Map<String, IGamesService> gamesService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
||||
@Resource
|
||||
private KeyConfig keyConfig;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
|
||||
@Autowired
|
||||
@Qualifier("threadPoolTaskExecutor")
|
||||
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
private IPlatformService platformService;
|
||||
|
||||
/**
|
||||
* 创建成员
|
||||
|
|
@ -98,24 +92,38 @@ public class ApiMemberController extends BaseController {
|
|||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(memberCreateApiRequest.getPlatformCode())
|
||||
.systemCurrency(memberCreateApiRequest.getCurrencyCode()).build());
|
||||
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
Platform platform = platformService.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());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(memberCreateApiRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(memberCreateApiRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(memberCreateApiRequest.getPlatformCode())
|
||||
// .systemCurrency(memberCreateApiRequest.getCurrencyCode()).build());
|
||||
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
String gameAccount = StringUtils.addSuffix(memberService.getMemberGameAccount(memberCreateApiRequest.getPlatformCode()), tenantSecretKey.getTenantSn());
|
||||
|
||||
|
||||
// 获取用户信息
|
||||
Member gameMember = memberService.selectMemberByAccount(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode(), memberCreateApiRequest.getPlatformCode());
|
||||
if (!ObjectUtils.isEmpty(gameMember)){
|
||||
if (!ObjectUtils.isEmpty(gameMember)) {
|
||||
throw new ApiException(ErrorCode.GAME_ACCOUNT_CREATION_FAILED.getCode());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//注册本地账号
|
||||
Member member = Member.builder()
|
||||
.tenantKey(tenantSecretKey.getTenantKey())
|
||||
|
|
@ -130,11 +138,14 @@ public class ApiMemberController extends BaseController {
|
|||
//向第三方注册账号
|
||||
CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder()
|
||||
.account(gameAccount)
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.agentId(keyInfo.getCode())
|
||||
.agentKey(keyInfo.getKey())
|
||||
.betLimit(memberCreateApiRequest.getBetLimit())
|
||||
.platformType(memberCreateApiRequest.getPlatformType())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.currency(targetCurrency)
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(memberCreateApiRequest.getCurrencyCode())
|
||||
.build();
|
||||
Boolean result = iGamesService.createMember(gamesBaseRequestDTO);
|
||||
Assert.isTrue(result, "建立游戏账号失败");
|
||||
|
|
@ -146,35 +157,52 @@ public class ApiMemberController extends BaseController {
|
|||
/**
|
||||
* 获取会员信息
|
||||
*
|
||||
* @param memberInfoApiRequest 成员信息api请求
|
||||
* @param request 成员信息api请求
|
||||
* @return {@link AjaxResult }
|
||||
*/
|
||||
@PostMapping("/info")
|
||||
public AjaxResult getMemberInfo(@Validated @RequestBody MemberInfoApiRequest memberInfoApiRequest) {
|
||||
IGamesService iGamesService = gamesService.get(memberInfoApiRequest.getPlatformCode() + Constants.SERVICE);
|
||||
public AjaxResult getMemberInfo(@Validated @RequestBody MemberInfoApiRequest request) {
|
||||
IGamesService iGamesService = gamesService.get(request.getPlatformCode() + Constants.SERVICE);
|
||||
ApiException.notNull(iGamesService, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
TenantSecretKey tenantSecretKey = keyConfig.get();
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(memberInfoApiRequest.getPlatformCode())
|
||||
.systemCurrency(memberInfoApiRequest.getCurrencyCode()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(memberInfoApiRequest.getPlatformCode())
|
||||
// .systemCurrency(memberInfoApiRequest.getCurrencyCode()).build());
|
||||
//
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
Platform platform = platformService.get(request.getPlatformCode());
|
||||
ApiException.notNull(platform, ErrorCode.PLATFORM_NOT_EXIST.getCode());
|
||||
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
String targetCurrency = platform.getCurrencyInfo().get(request.getCurrencyCode());
|
||||
ApiException.notNull(targetCurrency, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(request.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(request.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ApiException.notNull(keyInfo, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
// 获取用户信息
|
||||
Member member = memberService.selectMemberByAccount(memberInfoApiRequest.getAccount(), memberInfoApiRequest.getCurrencyCode(), memberInfoApiRequest.getPlatformCode());
|
||||
Member member = memberService.selectMemberByAccount(request.getAccount(), request.getCurrencyCode(), request.getPlatformCode());
|
||||
ApiException.notNull(member, ErrorCode.ACCOUNT_NOT_EXIST.getCode());
|
||||
|
||||
|
||||
|
||||
//向第三方查询账号
|
||||
MemberInfoRequestDTO gamesBaseRequestDTO = MemberInfoRequestDTO.builder()
|
||||
.accounts(member.getGameAccount())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.agentId(keyInfo.getCode())
|
||||
.currency(targetCurrency)
|
||||
.agentKey(keyInfo.getKey())
|
||||
.vendor(platform)
|
||||
.keyInfo(keyInfo)
|
||||
.systemCurrency(request.getCurrencyCode())
|
||||
.build();
|
||||
MemberInfoResponseDTO memberInfo = iGamesService.getMemberInfo(gamesBaseRequestDTO);
|
||||
MemberInfoResponse memberInfoResponse = new MemberInfoResponse();
|
||||
|
|
@ -193,22 +221,50 @@ public class ApiMemberController extends BaseController {
|
|||
public AjaxResult infoAll(@Validated @RequestBody MemberInfoAllApiRequest memberInfoAllApiRequest) {
|
||||
|
||||
|
||||
// List<GameSecretKeyCurrencyDTO> gameSecretKeys = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(
|
||||
// GameSecretKeyCurrencyDTO.builder()
|
||||
// .systemCurrency(memberInfoAllApiRequest.getCurrencyCode()).build());
|
||||
List<Key> keys = new ArrayList<>();
|
||||
for (GamePlatforms platformEnum : GamePlatforms.values()) {
|
||||
|
||||
Platform platform = platformService.get(platformEnum.getCode());
|
||||
String targetCurrency = platform.getCurrencyInfo().get(memberInfoAllApiRequest.getCurrencyCode());
|
||||
if (StringUtils.isEmpty(targetCurrency)) {
|
||||
continue;
|
||||
}
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : platform.getKeyInfo()) {
|
||||
if (StringUtils.isNotEmpty(memberInfoAllApiRequest.getCurrencyCode())) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(memberInfoAllApiRequest.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null == keyInfo) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
List<GameSecretKeyCurrencyDTO> gameSecretKeys = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
.systemCurrency(memberInfoAllApiRequest.getCurrencyCode()).build());
|
||||
|
||||
Key key = new Key();
|
||||
key.setPlatformCode(platform.getPlatformCode());
|
||||
key.setCode(keyInfo.getCode());
|
||||
key.setKey(keyInfo.getKey());
|
||||
key.setCurrency(targetCurrency);
|
||||
key.setSystemCurrency(memberInfoAllApiRequest.getCurrencyCode());
|
||||
keys.add(key);
|
||||
}
|
||||
// 创建线程池
|
||||
Map<String, BigDecimal> balanceMap = new LinkedHashMap<>();
|
||||
CountDownLatch latch = new CountDownLatch(gameSecretKeys.size());
|
||||
CountDownLatch latch = new CountDownLatch(keys.size());
|
||||
|
||||
// 使用List存储Future对象,用于获取异步执行的结果
|
||||
List<Future<MemberInfoAllResponse>> futures = new ArrayList<>();
|
||||
|
||||
// 提交异步任务到线程池
|
||||
for (GameSecretKeyCurrencyDTO gameSecretKey : gameSecretKeys) {
|
||||
for (Key gameSecretKey : keys) {
|
||||
|
||||
futures.add(threadPoolTaskExecutor.submit(() -> {
|
||||
|
||||
try {
|
||||
IGamesService iGamesService = gamesService.get(gameSecretKey.getPlatformCode() + Constants.SERVICE);
|
||||
|
||||
|
|
@ -221,6 +277,7 @@ public class ApiMemberController extends BaseController {
|
|||
.accounts(member.getGameAccount())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.systemCurrency(gameSecretKey.getSystemCurrency())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.build();
|
||||
//查询余额
|
||||
|
|
@ -256,5 +313,13 @@ public class ApiMemberController extends BaseController {
|
|||
return AjaxResult.success(balanceMap);
|
||||
}
|
||||
|
||||
@Data
|
||||
class Key {
|
||||
private String platformCode;
|
||||
private String code;
|
||||
private String currency;
|
||||
private String key;
|
||||
private String systemCurrency;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,5 +49,11 @@ public class GameDemoLoginRequest implements Serializable {
|
|||
*/
|
||||
private Integer disableFullScreen;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
@NotBlank(message = "currencyCode不能为空")
|
||||
@Length(max = 32, message = "currencyCode长度不能超过32个字符")
|
||||
private String currencyCode;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ff.common.dto;
|
||||
|
||||
import com.ff.game.api.request.GamesBaseRequestDTO;
|
||||
import io.swagger.models.auth.In;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
|
|
@ -21,7 +22,7 @@ import java.math.BigDecimal;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class GameBalanceExchange implements Serializable {
|
||||
public class GameBalanceExchange extends GamesBaseRequestDTO implements Serializable {
|
||||
private final static long serialVersionUID = 3452954102791311247L;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,13 +26,8 @@ import com.ff.common.service.ITenantQuotaExchangeService;
|
|||
import com.ff.base.system.service.ITenantSecretKeyService;
|
||||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.request.MemberInfoRequestDTO;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.IGameSecretKeyCurrencyService;
|
||||
import com.ff.game.service.IGameSecretKeyService;
|
||||
import com.ff.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import nonapi.io.github.classgraph.json.Id;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ff.common.mapper.TenantGameQuotaMapper;
|
||||
|
|
@ -61,30 +56,18 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService {
|
|||
@Resource
|
||||
private ITenantSecretKeyService tenantSecretKeyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private Map<String, IGamesService> gamesService;
|
||||
|
||||
|
||||
@Resource
|
||||
private ITenantQuotaExchangeService tenantQuotaExchangeService;
|
||||
|
||||
@Resource
|
||||
private ITenantPlatformService tenantPlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询租户游戏配额
|
||||
*
|
||||
|
|
@ -289,12 +272,12 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService {
|
|||
@Override
|
||||
public BigDecimal gameBalanceExchange(GameBalanceExchange gameBalanceExchange) {
|
||||
// 获取平台接口密钥
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(gameBalanceExchange.getPlatformCode())
|
||||
.systemCurrency(gameBalanceExchange.getCurrencyCode()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(gameBalanceExchange.getPlatformCode())
|
||||
// .systemCurrency(gameBalanceExchange.getCurrencyCode()).build());
|
||||
|
||||
// 检查平台密钥是否存在,否则抛出异常
|
||||
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
// ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
|
||||
|
||||
TenantQuotaExchange tenantQuotaExchange = tenantQuotaExchangeService.getTenantQuotaExchange(Constants.USDT, gameBalanceExchange.getCurrencyCode());
|
||||
ApiException.notNull(tenantQuotaExchange, ErrorCode.CURRENCY_EXCHANGE.getCode());
|
||||
|
|
@ -344,9 +327,9 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService {
|
|||
// 获取第三方钱包余额
|
||||
MemberInfoRequestDTO gamesBaseRequestDTO = MemberInfoRequestDTO.builder()
|
||||
.accounts(member.getGameAccount())
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.currency(gameSecretKey.getCurrency())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.agentId(gameBalanceExchange.getAgentId())
|
||||
.currency(gameBalanceExchange.getCurrency())
|
||||
.agentKey(gameBalanceExchange.getAgentKey())
|
||||
.build();
|
||||
balanceRequestAmount = iGamesService.getMemberInfo(gamesBaseRequestDTO).getBalance();
|
||||
balanceRequestAmount = NumberUtil.add(balanceRequestAmount, NumberUtil.mul(balanceRequestAmount, NumberUtil.div(tenantPlatform.getUseCost(), Constants.HUNDRED)));
|
||||
|
|
|
|||
|
|
@ -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.IPlatformService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
|
|
@ -34,6 +35,9 @@ public class ContentRefreshedEventListener implements ApplicationListener<Contex
|
|||
|
||||
@Resource
|
||||
private ISysDictTypeService sysDictTypeService;
|
||||
|
||||
@Resource
|
||||
private IPlatformService platformService;
|
||||
/**
|
||||
* 项目加载时运行
|
||||
*
|
||||
|
|
@ -50,5 +54,7 @@ public class ContentRefreshedEventListener implements ApplicationListener<Contex
|
|||
}
|
||||
sysConfigService.loadingConfigCache();
|
||||
sysDictTypeService.loadingDictCache();
|
||||
|
||||
platformService.loadToCache();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.ae.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -20,12 +20,12 @@ import javax.annotation.Resource;
|
|||
public class MyAEAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.AE_API_BASE_URL);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"");
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.AE.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "");
|
||||
}
|
||||
}
|
||||
|
|
@ -12,23 +12,19 @@ import com.ff.base.system.service.ISysConfigService;
|
|||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.JsonUtil;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.base.utils.TenantUtils;
|
||||
import com.ff.base.utils.uuid.IdUtils;
|
||||
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.ae.client.AEClient;
|
||||
import com.ff.game.api.ae.dto.*;
|
||||
import com.ff.game.api.ng.dto.ApiExchangeTransferStatusResponseDTO;
|
||||
import com.ff.game.api.ng.dto.ApiNGResponseDTO;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.api.xk.dto.XKGamesDTO;
|
||||
import com.ff.game.api.xk.dto.XKKickMemberDTO;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.game.service.IGameBettingDetailsService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -65,10 +61,6 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
@Resource
|
||||
|
|
@ -77,14 +69,6 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private AEClient AEClient;
|
||||
|
||||
|
|
@ -95,10 +79,6 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏id
|
||||
*/
|
||||
|
|
@ -222,32 +202,39 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
@Override
|
||||
public String getGameList(GamesBaseRequestDTO gamesBaseRequestDTO) {
|
||||
GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(PLATFORM_ID);
|
||||
// GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(PLATFORM_ID);
|
||||
//没有此平台就新增一个平台
|
||||
if (ObjectUtils.isEmpty(gamePlatform)) {
|
||||
gamePlatform = new GamePlatform();
|
||||
gamePlatform.setId(PLATFORM_ID);
|
||||
gamePlatform.setPlatformCode(GamePlatforms.AE.getInfo());
|
||||
gamePlatform.setPlatformType(PlatformType.GAME_HALL.getCode());
|
||||
gamePlatform.setPlatformName(GamePlatforms.AE.getInfo() + PlatformType.GAME_HALL.getName());
|
||||
gamePlatform.setSortNo(gamePlatformService.selectMaxSortNo() + 1);
|
||||
gamePlatform.setCreateBy(Constants.SYSTEM);
|
||||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
}
|
||||
// if (ObjectUtils.isEmpty(gamePlatform)) {
|
||||
// gamePlatform = new GamePlatform();
|
||||
// gamePlatform.setId(PLATFORM_ID);
|
||||
// gamePlatform.setPlatformCode(GamePlatforms.AE.getInfo());
|
||||
// gamePlatform.setPlatformType(PlatformType.GAME_HALL.getCode());
|
||||
// gamePlatform.setPlatformName(GamePlatforms.AE.getInfo() + PlatformType.GAME_HALL.getName());
|
||||
// gamePlatform.setSortNo(gamePlatformService.selectMaxSortNo() + 1);
|
||||
// gamePlatform.setCreateBy(Constants.SYSTEM);
|
||||
// gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
// }
|
||||
Platform platform = gamesBaseRequestDTO.getVendor();
|
||||
Game game = gameService.selectGameById(GAME_ID);
|
||||
//不存在这个游戏
|
||||
if (ObjectUtils.isEmpty(game)) {
|
||||
game = new Game();
|
||||
game.setId(GAME_ID);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setPlatformId(gamePlatform.getId());
|
||||
game.setSortNo(gameService.selectMaxSortNo(PlatformType.GAME_HALL.getCode(), GamePlatforms.AE.getCode()) + 1);
|
||||
//game.setPlatformId(gamePlatform.getId());
|
||||
game.setPlatformCode(platform.getPlatformCode());
|
||||
game.setPlatformType(PlatformType.GAME_HALL.getCode());
|
||||
game.setGameCode("1");
|
||||
game.setGameSourceType(String.valueOf(1));
|
||||
game.setGameName("AE大厅");
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
NameInfo nameInfo = new NameInfo();
|
||||
nameInfo.setLang("zh-CN");
|
||||
nameInfo.setName("AE大厅");
|
||||
game.setNameInfo(Collections.singletonList(nameInfo));
|
||||
gameService.insertGame(game);
|
||||
}
|
||||
GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID);
|
||||
/*GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID);
|
||||
if (ObjectUtils.isEmpty(gameName)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.id(GAME_NAME_ID)
|
||||
|
|
@ -256,7 +243,7 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
.langCode("zh-CN")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
}*/
|
||||
|
||||
return CacheConstants.XK_GAMES;
|
||||
}
|
||||
|
|
@ -271,10 +258,10 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesAEServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.AE.getInfo())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.AE.getInfo())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = GamePlatforms.AE.getCode() + IdUtils.simpleUUID();
|
||||
|
|
@ -294,7 +281,7 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.AE.getInfo())
|
||||
|
|
@ -378,6 +365,10 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
.amount(exchangeMoney.getBalance())
|
||||
.account(member.getMemberAccount())
|
||||
.tenantKey(exchangeMoney.getTenantKey())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.systemCurrency(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.agentKey(exchangeTransferMoneyRequestDTO.getAgentKey())
|
||||
.agentId(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.build());
|
||||
}
|
||||
exchangeMoney.setStatus(status);
|
||||
|
|
@ -402,20 +393,20 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
Map<String, Object> params = this.getKey(betRecordByTimeDTO);
|
||||
|
||||
String timeFrom = redisCache.getCacheObject(CacheConstants.AE_TIME_FROM);
|
||||
if (StringUtils.isEmpty(timeFrom)){
|
||||
timeFrom = DateUtils.convertTimestampToFormattedDate(betRecordByTimeDTO.getEndTime(), DateUtils.ISO_8601_FORMAT, "GMT+8")+"+08:00";
|
||||
if (StringUtils.isEmpty(timeFrom)) {
|
||||
timeFrom = DateUtils.convertTimestampToFormattedDate(betRecordByTimeDTO.getEndTime(), DateUtils.ISO_8601_FORMAT, "GMT+8") + "+08:00";
|
||||
}
|
||||
|
||||
|
||||
params.put("timeFrom", timeFrom);
|
||||
params.put("platform", "SEXYBCRT");
|
||||
params.put("delayTime",10000);
|
||||
params.put("delayTime", 10000);
|
||||
AEBetRecordResponse aeBetRecordResponse = AEClient.getBetRecordByTime(params);
|
||||
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(aeBetRecordResponse.getStatus())) {
|
||||
//数据组装
|
||||
this.batchInsert(aeBetRecordResponse);
|
||||
this.batchInsert(aeBetRecordResponse, betRecordByTimeDTO);
|
||||
return Boolean.TRUE;
|
||||
} else {
|
||||
log.error("GamesAEServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", aeBetRecordResponse.getStatus(), aeBetRecordResponse.getDesc());
|
||||
|
|
@ -436,19 +427,19 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
Map<String, Object> params = this.getKey(betRecordByTimeDTO);
|
||||
|
||||
long startTimeLong = DateUtils.addOrSubtractMinutes(betRecordByTimeDTO.getStartTime(), -40);
|
||||
String startTime = DateUtils.convertTimestampToFormattedDate(startTimeLong, DateUtils.ISO_8601_FORMAT, "GMT+8")+"+08:00";
|
||||
String endTime = DateUtils.convertTimestampToFormattedDate(betRecordByTimeDTO.getEndTime(), DateUtils.ISO_8601_FORMAT, "GMT+8")+"+08:00";
|
||||
String startTime = DateUtils.convertTimestampToFormattedDate(startTimeLong, DateUtils.ISO_8601_FORMAT, "GMT+8") + "+08:00";
|
||||
String endTime = DateUtils.convertTimestampToFormattedDate(betRecordByTimeDTO.getEndTime(), DateUtils.ISO_8601_FORMAT, "GMT+8") + "+08:00";
|
||||
|
||||
|
||||
params.put("startTime", startTime);
|
||||
params.put("endTime", endTime);
|
||||
params.put("platform","SEXYBCRT");
|
||||
params.put("platform", "SEXYBCRT");
|
||||
AEBetRecordResponse aeBetRecordResponse = AEClient.getBetHistoryRecordByTime(params);
|
||||
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(aeBetRecordResponse.getStatus())) {
|
||||
//数据组装
|
||||
this.batchInsert(aeBetRecordResponse);
|
||||
this.batchInsert(aeBetRecordResponse, betRecordByTimeDTO);
|
||||
return Boolean.TRUE;
|
||||
} else {
|
||||
log.error("GamesAEServiceImpl [getBetRecordByHistoryTime] 获取投注记录失败,错误代码{},错误信息{}", aeBetRecordResponse.getStatus(), aeBetRecordResponse.getDesc());
|
||||
|
|
@ -548,22 +539,24 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param aeBetRecordResponse ae下注记录响应dto
|
||||
*/
|
||||
private void batchInsert(AEBetRecordResponse aeBetRecordResponse) {
|
||||
private void batchInsert(AEBetRecordResponse aeBetRecordResponse, BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
List<AEBetRecordResponse.Transaction> dataBean = aeBetRecordResponse.getTransactions();
|
||||
|
||||
String timeFrom=null ;
|
||||
String timeFrom = null;
|
||||
//数据转化
|
||||
for (AEBetRecordResponse.Transaction bean : dataBean) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.data(bean).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
}
|
||||
wagersIds.add(bean.getPlatform() + bean.getPlatformTxId());
|
||||
timeFrom=bean.getUpdateTime();
|
||||
timeFrom = bean.getUpdateTime();
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
|
|
@ -576,8 +569,8 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
gameBettingDetailsService.batchInsert(gameBettingDetails);
|
||||
}
|
||||
}
|
||||
if (StringUtils.isEmpty(timeFrom)){
|
||||
timeFrom = DateUtils.convertTimestampToFormattedDate(DateUtils.getNowDate(), DateUtils.ISO_8601_FORMAT, "UTC+8")+"+08:00";
|
||||
if (StringUtils.isEmpty(timeFrom)) {
|
||||
timeFrom = DateUtils.convertTimestampToFormattedDate(DateUtils.getNowDate(), DateUtils.ISO_8601_FORMAT, "UTC+8") + "+08:00";
|
||||
}
|
||||
redisCache.setCacheObject(CacheConstants.AE_TIME_FROM, timeFrom);
|
||||
}
|
||||
|
|
@ -593,10 +586,10 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
//转化类
|
||||
AEBetRecordResponse.Transaction resultBean = (AEBetRecordResponse.Transaction) gamesDataBuildDTO.getData();
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
/*GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.AE.getInfo())
|
||||
.currency(resultBean.getCurrency())
|
||||
.build());
|
||||
.build());*/
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getUserId());
|
||||
if (ObjectUtils.isEmpty(member)) {
|
||||
|
|
@ -606,26 +599,26 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
|
||||
// 判断输赢
|
||||
Integer gameStatus = GameStatus.FLAT.getCode();
|
||||
BigDecimal payoffAmount=BigDecimal.ZERO;
|
||||
BigDecimal payoffAmount = BigDecimal.ZERO;
|
||||
if (resultBean.getRealWinAmount().compareTo(resultBean.getRealBetAmount()) > 0) {
|
||||
gameStatus = GameStatus.WIN.getCode();
|
||||
payoffAmount=resultBean.getRealWinAmount().subtract(resultBean.getRealBetAmount());
|
||||
} else if (resultBean.getRealWinAmount().compareTo(resultBean.getRealBetAmount()) < 0) {
|
||||
payoffAmount = resultBean.getRealWinAmount().subtract(resultBean.getRealBetAmount());
|
||||
} else if (resultBean.getRealWinAmount().compareTo(resultBean.getRealBetAmount()) < 0) {
|
||||
gameStatus = GameStatus.FAIL.getCode();
|
||||
payoffAmount=resultBean.getRealWinAmount().subtract(resultBean.getRealBetAmount()).abs();
|
||||
payoffAmount = resultBean.getRealWinAmount().subtract(resultBean.getRealBetAmount()).abs();
|
||||
}
|
||||
|
||||
//结算状态
|
||||
int settlementStatus=SettlementStatusEnum.REVOKED.getCode();
|
||||
if (resultBean.getTxStatus() == 1){
|
||||
settlementStatus=SettlementStatusEnum.COMPLETED.getCode();
|
||||
int settlementStatus = SettlementStatusEnum.REVOKED.getCode();
|
||||
if (resultBean.getTxStatus() == 1) {
|
||||
settlementStatus = SettlementStatusEnum.COMPLETED.getCode();
|
||||
}
|
||||
|
||||
//数据构造
|
||||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(gamesDataBuildDTO.getPlatform().getOurCurrency(resultBean.getCurrency()))
|
||||
.memberId(member.getId())
|
||||
.gameCode(resultBean.getGameCode())
|
||||
.gameType(PlatformType.GAME_HALL.getCode())
|
||||
|
|
@ -636,7 +629,7 @@ public class GamesAEServiceImpl implements IGamesService {
|
|||
.gameStatusType(resultBean.getSettleStatus())
|
||||
.gameCurrencyCode(resultBean.getCurrency())
|
||||
.account(resultBean.getUserId())
|
||||
.wagersId(resultBean.getPlatform()+resultBean.getPlatformTxId())
|
||||
.wagersId(resultBean.getPlatform() + resultBean.getPlatformTxId())
|
||||
.wagersTime(resultBean.getBetTime().getTime())
|
||||
.betAmount(resultBean.getRealBetAmount())
|
||||
.payoffTime(resultBean.getTxTime().getTime())
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.dg.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -20,12 +20,12 @@ import javax.annotation.Resource;
|
|||
public class MyDGAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.DG_API_BASE_URL);
|
||||
return new ForestAddress("http",apiBaseUrl, 80,"");
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.DG.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("http", apiBaseUrl, 80, "");
|
||||
}
|
||||
}
|
||||
|
|
@ -4,14 +4,10 @@ import cn.hutool.core.util.IdUtil;
|
|||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.ff.base.constant.CacheConstants;
|
||||
import com.ff.base.constant.Constants;
|
||||
import com.ff.base.core.redis.RedisCache;
|
||||
import com.ff.base.enums.*;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.JsonUtil;
|
||||
import com.ff.base.utils.SleepUtil;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.base.utils.sign.Md5Utils;
|
||||
import com.ff.base.utils.uuid.IdUtils;
|
||||
|
|
@ -19,15 +15,11 @@ import com.ff.config.KeyConfig;
|
|||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.dg.client.DGClient;
|
||||
import com.ff.game.api.dg.dto.*;
|
||||
import com.ff.game.api.ng.dto.ApiLoginResponseDTO;
|
||||
import com.ff.game.api.ng.dto.ApiMemberInfoResponseDTO;
|
||||
import com.ff.game.api.ng.dto.ApiNGResponseDTO;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.api.xk.client.XKClient;
|
||||
import com.ff.game.api.xk.dto.*;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.game.service.IGameBettingDetailsService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -40,7 +32,6 @@ import org.springframework.util.ObjectUtils;
|
|||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
|
@ -54,21 +45,9 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
public class GamesDGServiceImpl implements IGamesService {
|
||||
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -76,28 +55,15 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private DGClient DGClient;
|
||||
|
||||
|
||||
@Resource
|
||||
private KeyConfig keyConfig;
|
||||
|
||||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏id
|
||||
*/
|
||||
|
|
@ -229,9 +195,9 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
@Override
|
||||
public String getGameList(GamesBaseRequestDTO gamesBaseRequestDTO) {
|
||||
GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(PLATFORM_ID);
|
||||
//GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(PLATFORM_ID);
|
||||
//没有此平台就新增一个平台
|
||||
if (ObjectUtils.isEmpty(gamePlatform)) {
|
||||
/*if (ObjectUtils.isEmpty(gamePlatform)) {
|
||||
gamePlatform = new GamePlatform();
|
||||
gamePlatform.setId(PLATFORM_ID);
|
||||
gamePlatform.setPlatformCode(GamePlatforms.DG.getInfo());
|
||||
|
|
@ -240,21 +206,24 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
gamePlatform.setSortNo(gamePlatformService.selectMaxSortNo() + 1);
|
||||
gamePlatform.setCreateBy(Constants.SYSTEM);
|
||||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
}
|
||||
}*/
|
||||
Game game = gameService.selectGameById(GAME_ID);
|
||||
//不存在这个游戏
|
||||
if (ObjectUtils.isEmpty(game)) {
|
||||
game = new Game();
|
||||
game.setId(GAME_ID);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setPlatformId(gamePlatform.getId());
|
||||
game.setSortNo(1);
|
||||
//game.setPlatformId(gamePlatform.getId());
|
||||
game.setPlatformCode(GamePlatforms.DG.getCode());
|
||||
game.setPlatformType(PlatformType.GAME_HALL.getCode());
|
||||
game.setGameCode("1");
|
||||
game.setGameSourceType(String.valueOf(1));
|
||||
game.setGameName("真人棋牌");
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
game.setNameInfo(Collections.singletonList(new NameInfo("真人棋牌", "zh-CN")));
|
||||
gameService.insertGame(game);
|
||||
}
|
||||
GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID);
|
||||
/*GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID);
|
||||
if (ObjectUtils.isEmpty(gameName)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.id(GAME_NAME_ID)
|
||||
|
|
@ -263,7 +232,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
.langCode("zh-CN")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
}*/
|
||||
return CacheConstants.DG_GAMES;
|
||||
}
|
||||
|
||||
|
|
@ -277,10 +246,10 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesDGServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.DG.getInfo())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.DG.getInfo())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = GamePlatforms.DG.getInfo() + IdUtils.simpleUUID();
|
||||
|
|
@ -300,7 +269,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.DG.getInfo())
|
||||
|
|
@ -373,9 +342,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
DGBetRecordResponseDTO betRecordByTime = DGClient.getBetRecordByTime(key);
|
||||
|
||||
if (this.getIsSuccess(betRecordByTime.getCodeId())) {
|
||||
this.batchInsert(betRecordByTime,betRecordByTimeDTO);
|
||||
|
||||
|
||||
this.batchInsert(betRecordByTime, betRecordByTimeDTO);
|
||||
return Boolean.TRUE;
|
||||
} else {
|
||||
log.error("GamesDGServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordByTime.getCodeId(), betRecordByTime.getMsg());
|
||||
|
|
@ -432,14 +399,14 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
if (!this.getIsSuccess(userListResponseDTO.getCodeId())) {
|
||||
throw new ApiException(ErrorCode.KICK_OUT_AILED.getCode());
|
||||
}
|
||||
if (CollectionUtils.isEmpty(userListResponseDTO.getList())){
|
||||
if (CollectionUtils.isEmpty(userListResponseDTO.getList())) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
DGUserListResponseDTO.UserDTO userDTO = userListResponseDTO.getList().stream()
|
||||
.filter(user -> user.getUsername().equals(kickMemberRequestDTO.getAccount()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (Objects.isNull(userDTO)){
|
||||
if (Objects.isNull(userDTO)) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -447,7 +414,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
List<Long> memberIds = new ArrayList<>();
|
||||
memberIds.add(userDTO.getMemberId());
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("list",memberIds);
|
||||
params.put("list", memberIds);
|
||||
DGResponse dgResponse = DGClient.kickMember(params, key);
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(dgResponse.getCodeId())) {
|
||||
|
|
@ -472,7 +439,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
throw new ApiException(ErrorCode.KICK_OUT_AILED.getCode());
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(userListResponseDTO.getList())){
|
||||
if (CollectionUtils.isEmpty(userListResponseDTO.getList())) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -480,7 +447,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
|
||||
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("list",memberIds);
|
||||
params.put("list", memberIds);
|
||||
DGResponse dgResponse = DGClient.kickMember(params, key);
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(dgResponse.getCodeId())) {
|
||||
|
|
@ -513,7 +480,6 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 取消赠送免费局数
|
||||
*
|
||||
|
|
@ -531,14 +497,16 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param dgBetRecordResponseDTO dg投注记录响应dto
|
||||
*/
|
||||
private void batchInsert(DGBetRecordResponseDTO dgBetRecordResponseDTO,GamesBaseRequestDTO gamesBaseRequestDTO) {
|
||||
private void batchInsert(DGBetRecordResponseDTO dgBetRecordResponseDTO, GamesBaseRequestDTO gamesBaseRequestDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
List<DGBetRecordResponseDTO.ReportDTO> report = dgBetRecordResponseDTO.getList();
|
||||
//数据转化
|
||||
for (DGBetRecordResponseDTO.ReportDTO bean : report) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.platform(gamesBaseRequestDTO.getVendor())
|
||||
.data(bean).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -547,7 +515,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,GamePlatforms.DG.getInfo());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.DG.getInfo());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
@ -557,7 +525,7 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
Map<String, Object> key = this.getKey(gamesBaseRequestDTO);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("list", wagersIds);
|
||||
DGClient.markReport(params,key);
|
||||
DGClient.markReport(params, key);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -575,10 +543,10 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
DGBetRecordResponseDTO.ReportDTO resultBean = (DGBetRecordResponseDTO.ReportDTO) gamesDataBuildDTO.getData();
|
||||
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.DG.getInfo())
|
||||
.currencyId(String.valueOf(resultBean.getCurrencyId()))
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.DG.getInfo())
|
||||
// .currencyId(String.valueOf(resultBean.getCurrencyId()))
|
||||
// .build());
|
||||
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getUserName());
|
||||
|
|
@ -608,16 +576,16 @@ public class GamesDGServiceImpl implements IGamesService {
|
|||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(gamesDataBuildDTO.getPlatform().getExtInfo().getOurCurrency(String.valueOf(resultBean.getCurrencyId())))
|
||||
.memberId(member.getId())
|
||||
.gameCode(String.valueOf(resultBean.getGameId()))
|
||||
.gameType(PlatformType.CARD_GAME.getCode())
|
||||
.platformCode(GamePlatforms.DG.getInfo())
|
||||
.platformCode(GamePlatforms.DG.getCode())
|
||||
.gameId(GAME_ID)
|
||||
.gameName(game.getGameName())
|
||||
.gameStatus(gameStatus)
|
||||
.gameStatusType(resultBean.getGameType())
|
||||
.gameCurrencyCode(currencyDTO.getCurrency())
|
||||
.gameCurrencyCode(/*gamesDataBuildDTO.getCurrencyCode()*/String.valueOf(resultBean.getCurrencyId()))
|
||||
.account(String.valueOf(resultBean.getUserName()))
|
||||
.wagersId(String.valueOf(resultBean.getId()))
|
||||
.wagersTime(resultBean.getBetTime().getTime())
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.fc.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -13,12 +13,13 @@ import javax.annotation.Resource;
|
|||
public class MyFCAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
private IPlatformService platformService;
|
||||
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.FC_API_BASE_URL);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"");
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.FC.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,19 +9,19 @@ import com.ff.base.core.redis.RedisCache;
|
|||
import com.ff.base.enums.*;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.base.utils.sign.Md5Utils;
|
||||
import com.ff.config.KeyConfig;
|
||||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.fc.dto.*;
|
||||
import com.ff.game.api.fc.client.FCClient;
|
||||
import com.ff.game.api.ng.client.NGClient;
|
||||
import com.ff.game.api.fc.dto.*;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameBettingDetailsDTO;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
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.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -54,21 +54,12 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
public class GamesFCServiceImpl implements IGamesService {
|
||||
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -76,37 +67,22 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private FCClient FCClient;
|
||||
|
||||
|
||||
@Resource
|
||||
private KeyConfig keyConfig;
|
||||
|
||||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyLangService gameSecretKeyLangService;
|
||||
|
||||
|
||||
@Autowired
|
||||
@Qualifier("threadPoolTaskExecutor")
|
||||
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
||||
|
||||
@Autowired
|
||||
private IPlatformService platformService;
|
||||
|
||||
/**
|
||||
* 获得就是成功
|
||||
*
|
||||
|
|
@ -276,45 +252,40 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
|
||||
for (String gameTypeKey : gameList.getGetGameIconList().keySet()) {
|
||||
Map<String, ApiFCGameListResponseDTO.GameDetails> integerGameDetailsMap = gameList.getGetGameIconList().get(gameTypeKey);
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(FCGameType.findSystemByCode(gameTypeKey))
|
||||
.platformCode(GamePlatforms.FC.getInfo())
|
||||
.build();
|
||||
List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
//没有此平台就新增一个平台
|
||||
if (CollectionUtils.isEmpty(gamePlatforms)) {
|
||||
gamePlatform.setPlatformName(GamePlatforms.FC.getInfo() + FCGameType.findInfoByCode(gameTypeKey));
|
||||
gamePlatform.setSortNo(gamePlatformService.selectMaxSortNo() + 1);
|
||||
gamePlatform.setCreateBy(Constants.SYSTEM);
|
||||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
|
||||
//新增游戏
|
||||
for (String gameIdKey : integerGameDetailsMap.keySet()) {
|
||||
|
||||
ApiFCGameListResponseDTO.GameDetails gameDetails = integerGameDetailsMap.get(gameIdKey);
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.FC.getCode())
|
||||
.gameCode(gameIdKey)
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
int platformType = FCGameType.findSystemByCode(gameTypeKey);
|
||||
//不存在这个游戏
|
||||
if (CollectionUtils.isEmpty(games)) {
|
||||
game.setGameSourceType(String.valueOf(PlatformType.ELECTRONIC.getCode()));
|
||||
game.setFreespin(Boolean.FALSE);
|
||||
game.setDemoStatus(Boolean.TRUE);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setPlatformCode(GamePlatforms.FC.getCode());
|
||||
game.setPlatformType(platformType);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.FC.getCode()) + 1);
|
||||
game.setGameName(gameDetails.getGameNameOfChinese());
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(NameInfo.builder().lang("zh-CN").name(gameDetails.getGameNameOfChinese()).build());
|
||||
nameInfos.add(NameInfo.builder().lang("en-US").name(gameDetails.getGameNameOfEnglish()).build());
|
||||
game.setNameInfo(nameInfos);
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
gameDetails.setSystemGameId(game.getId());
|
||||
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(gameDetails.getGameNameOfChinese()).build());
|
||||
/*List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(gameDetails.getGameNameOfChinese()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
|
|
@ -331,7 +302,7 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
.langCode("en-US")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
}*/
|
||||
|
||||
gameDetails.setGameId(gameIdKey);
|
||||
gameDetailsList.add(gameDetails);
|
||||
|
|
@ -359,11 +330,11 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesFCServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.FC.getInfo())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.FC.getInfo())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = gameExchangeMoneyService.getTransactionId(GamePlatforms.FC.getInfo(), 30);
|
||||
|
|
@ -383,7 +354,7 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.FC.getInfo())
|
||||
|
|
@ -402,7 +373,7 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
.accounts(member.getGameAccount())
|
||||
.agentId(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.agentKey(exchangeTransferMoneyRequestDTO.getAgentKey())
|
||||
.currency(currencyDTO.getCurrency())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.build();
|
||||
MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO);
|
||||
//判断是不是转出
|
||||
|
|
@ -459,29 +430,37 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
@Override
|
||||
public Boolean getBetRecordByTime(BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
|
||||
// List<GameSecretKeyCurrencyDTO> gameSecretKeyCurrencies = gameSecretKeyCurrencyService
|
||||
// .findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.FC.getInfo())
|
||||
// .build());
|
||||
|
||||
List<GameSecretKeyCurrencyDTO> gameSecretKeyCurrencies = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.FC.getInfo())
|
||||
.build());
|
||||
|
||||
for (GameSecretKeyCurrency gameSecretKeyCurrency : gameSecretKeyCurrencies) {
|
||||
Platform platform = betRecordByTimeDTO.getVendor();
|
||||
//for (KeyInfo keyInfo : platform.getKeyInfo()) {
|
||||
// for (GameSecretKeyCurrency gameSecretKeyCurrency : gameSecretKeyCurrencies) {
|
||||
String startTime = DateUtils.convertTimeZone(betRecordByTimeDTO.getStartTime(), "America/New_York", DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
String endTime = DateUtils.convertTimeZone(betRecordByTimeDTO.getEndTime(), "America/New_York", DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
Map<String, Object> paramsMap = new HashMap<>();
|
||||
paramsMap.put("StartDate", startTime);
|
||||
paramsMap.put("EndDate", endTime);
|
||||
paramsMap.putAll(getKeyMap(paramsMap, betRecordByTimeDTO.getAgentKey(), gameSecretKeyCurrency.getCurrency(), betRecordByTimeDTO.getAgentId()));
|
||||
KeyInfo keyInfo = betRecordByTimeDTO.getKeyInfo();
|
||||
String currency = keyInfo.getCurrency();
|
||||
String targetCurrency = platform.getCurrencyInfo().get(currency);
|
||||
if (StringUtils.isEmpty(targetCurrency)) {
|
||||
log.error("获取不到币种,platformCode:{},{}->{}", platform.getPlatformCode(), currency, targetCurrency);
|
||||
//continue;
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
paramsMap.putAll(getKeyMap(paramsMap, betRecordByTimeDTO.getAgentKey(), keyInfo.getCurrency(), betRecordByTimeDTO.getAgentId()));
|
||||
|
||||
ApiFCBetRecordResponseDTO betRecordByTime = FCClient.getBetRecordByTime(paramsMap);
|
||||
|
||||
if (this.getIsSuccess(betRecordByTime.getResult())) {
|
||||
//数据组装
|
||||
this.batchInsert(betRecordByTime, gameSecretKeyCurrency.getSystemCurrency(), gameSecretKeyCurrency.getCurrency());
|
||||
|
||||
this.batchInsert(betRecordByTime, currency, targetCurrency);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -493,15 +472,20 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean getBetRecordByHistoryTime(BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameSecretKeyCurrencyDTO> gameSecretKeyCurrencies = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.FC.getInfo())
|
||||
.build());
|
||||
|
||||
for (GameSecretKeyCurrency gameSecretKeyCurrency : gameSecretKeyCurrencies) {
|
||||
Platform platform = betRecordByTimeDTO.getVendor();
|
||||
for (KeyInfo keyInfo : platform.getKeyInfo()) {
|
||||
|
||||
// for (GameSecretKeyCurrency gameSecretKeyCurrency : gameSecretKeyCurrencies) {
|
||||
//必须两个小时之前的数据
|
||||
long startTimeLong = DateUtils.addOrSubtractMinutes(betRecordByTimeDTO.getStartTime(), -120);
|
||||
long endTimeLong = DateUtils.addOrSubtractMinutes(betRecordByTimeDTO.getEndTime(), -120);
|
||||
|
||||
String currency = keyInfo.getCurrency();
|
||||
String targetCurrency = platform.getCurrencyInfo().get(currency);
|
||||
if (StringUtils.isEmpty(targetCurrency)) {
|
||||
log.error("获取不到币种,platformCode:{},{}->{}", platform.getPlatformCode(), currency, targetCurrency);
|
||||
continue;
|
||||
}
|
||||
//查询一个小时内的数据一次最多15分钟
|
||||
int timeWheel = 60;
|
||||
while (timeWheel > 0) {
|
||||
|
|
@ -510,18 +494,16 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
Map<String, Object> paramsMap = new HashMap<>();
|
||||
paramsMap.put("StartDate", startTime);
|
||||
paramsMap.put("EndDate", endTime);
|
||||
paramsMap.putAll(getKeyMap(paramsMap, betRecordByTimeDTO.getAgentKey(), gameSecretKeyCurrency.getCurrency(), betRecordByTimeDTO.getAgentId()));
|
||||
paramsMap.putAll(getKeyMap(paramsMap, betRecordByTimeDTO.getAgentKey(), targetCurrency, betRecordByTimeDTO.getAgentId()));
|
||||
|
||||
ApiFCBetRecordResponseDTO betRecordByTime = FCClient.getBetRecordByHistoryTime(paramsMap);
|
||||
|
||||
if (this.getIsSuccess(betRecordByTime.getResult())) {
|
||||
//数据组装
|
||||
this.batchInsert(betRecordByTime, gameSecretKeyCurrency.getSystemCurrency(), gameSecretKeyCurrency.getCurrency());
|
||||
this.batchInsert(betRecordByTime, currency, targetCurrency);
|
||||
}
|
||||
timeWheel -= 15;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
|
@ -660,7 +642,7 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
.memberId(member.getId())
|
||||
.gameCode(resultBean.getGameID())
|
||||
.gameType(FCGameType.findSystemByCode(resultBean.getGametype()))
|
||||
.platformCode(GamePlatforms.FC.getInfo())
|
||||
.platformCode(GamePlatforms.FC.getCode())
|
||||
.gameId(gamesDataDTO.getSystemGameId())
|
||||
.gameName(gamesDataDTO.getGameNameOfChinese())
|
||||
.gameStatus(gameStatus)
|
||||
|
|
@ -694,7 +676,9 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据转化
|
||||
for (ApiFCBetRecordResponseDTO.BetRecord bean : data.getRecords()) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).currencyCode(currencyCode).systemCurrencyCode(systemCurrencyCode).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean)
|
||||
.currencyCode(currencyCode)
|
||||
.systemCurrencyCode(systemCurrencyCode).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -703,7 +687,7 @@ public class GamesFCServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,GamePlatforms.FC.getInfo());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.FC.getInfo());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
|
|||
|
|
@ -3,13 +3,11 @@ package com.ff.game.api.jili.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.system.service.ISysConfigService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Random;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -19,15 +17,15 @@ import java.util.Random;
|
|||
* @date 2025/02/10
|
||||
*/
|
||||
@Component
|
||||
public class MyJILIAddressSource implements AddressSource {
|
||||
public class MyJILIAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.JILI_API_BASE_URL);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"api1");
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.FC.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "api1");
|
||||
}
|
||||
}
|
||||
|
|
@ -19,8 +19,10 @@ 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.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
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.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -58,10 +60,6 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -72,8 +70,6 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private JILIClient jiliClient;
|
||||
|
|
@ -85,11 +81,6 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
/**
|
||||
* 获得就是成功
|
||||
*
|
||||
|
|
@ -138,10 +129,10 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
String key = this.getKey(createMemberRequestDTO);
|
||||
JILICreateMemberResponseDTO createMemberResponseDTO = jiliClient.createMember(query + "&Key=" + key);
|
||||
int errorCode = createMemberResponseDTO.getErrorCode();
|
||||
if (0 == errorCode){
|
||||
if (0 == errorCode) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
if (101 == errorCode){
|
||||
if (101 == errorCode) {
|
||||
throw new ApiException(ErrorCode.GAME_ACCOUNT_CREATION_FAILED.getCode());
|
||||
}
|
||||
//判断是否获取成功
|
||||
|
|
@ -235,7 +226,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
if (this.getIsSuccess(jiliGames.getErrorCode())) {
|
||||
|
||||
for (JILIGamesDataDTO gamesDataDTO : jiliGames.getData()) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
/*GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(JILIGameType.findSystemByCode(gamesDataDTO.getGameCategoryId()))
|
||||
.platformCode(GamePlatforms.JILI.getInfo())
|
||||
.build();
|
||||
|
|
@ -248,9 +239,12 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = JILIGameType.findSystemByCode(gamesDataDTO.getGameCategoryId());
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.JILI.getCode())
|
||||
.platformType(platformType)
|
||||
.gameCode(String.valueOf(gamesDataDTO.getGameId()))
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
|
|
@ -258,17 +252,29 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
if (CollectionUtils.isEmpty(games)) {
|
||||
game.setGameSourceType(String.valueOf(gamesDataDTO.getGameCategoryId()));
|
||||
game.setFreespin(gamesDataDTO.isFreespin());
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.JILI.getCode()) + 1);
|
||||
game.setGameName(gamesDataDTO.getName().getZhCN());
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
game.setPlatformType(platformType);
|
||||
game.setPlatformCode(GamePlatforms.JILI.getCode());
|
||||
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getName().getZhCN(), "zh-CN"));
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getName().getEnUS(), "en-US"));
|
||||
game.setNameInfo(nameInfos);
|
||||
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
gamesDataDTO.setSystemGameId(game.getId());
|
||||
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)){
|
||||
|
||||
/*List<GameName> gameNames = gameNameService.selectGameNameList(GameName
|
||||
.builder()
|
||||
.gameId(game.getId())
|
||||
.gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
.gameName(game.getGameName())
|
||||
|
|
@ -282,8 +288,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
.langCode("en-US")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -308,9 +313,9 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
@Override
|
||||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .currency(exchangeTransferMoneyRequestDTO.getCurrency()).build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = GamePlatforms.JILI.getInfo() + IdUtils.simpleUUID();
|
||||
|
|
@ -332,7 +337,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(gameSecretKey.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.JILI.getInfo())
|
||||
|
|
@ -410,8 +415,9 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) {
|
||||
|
||||
//数据插入
|
||||
this.batchInsert(betRecordJILIResponse);
|
||||
this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO);
|
||||
JILIBetRecordResponseDTO.DataBean dataBean = betRecordJILIResponse.getData();
|
||||
//获取下一页数据
|
||||
while (dataBean.getPagination().getCurrentPage() != dataBean.getPagination().getTotalPages() && dataBean.getPagination().getTotalPages() > 0) {
|
||||
|
|
@ -425,7 +431,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
dataBean = betRecordJILIResponse.getData();
|
||||
if (this.getIsSuccess(betRecordJILIResponse.getErrorCode())) {
|
||||
//数据插入
|
||||
this.batchInsert(betRecordJILIResponse);
|
||||
this.batchInsert(betRecordJILIResponse, betRecordByTimeDTO);
|
||||
} else {
|
||||
log.error("GameBettingDataJILIServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordJILIResponse.getErrorCode(), betRecordJILIResponse.getMessage());
|
||||
}
|
||||
|
|
@ -461,9 +467,9 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
|
||||
String freeSpinValidity = DateUtils.formatDateToGMT4(new Date(createFreeSpinRequest.getFreeSpinValidity()));
|
||||
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.code(createFreeSpinRequest.getAgentId())
|
||||
.currency(createFreeSpinRequest.getCurrency()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .code(createFreeSpinRequest.getAgentId())
|
||||
// .currency(createFreeSpinRequest.getCurrency()).build());
|
||||
|
||||
List<Long> gameIds = createFreeSpinRequest.getGameIds();
|
||||
GameUniqueDTO gameUniqueDTO = new GameUniqueDTO();
|
||||
|
|
@ -473,7 +479,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
.map(Game::getGameCode)
|
||||
.map(String::valueOf)
|
||||
.collect(Collectors.joining(","));
|
||||
String referenceId = GamePlatforms.JILI.getInfo() + IdUtils.simpleUUID();
|
||||
String referenceId = GamePlatforms.JILI.getCode() + IdUtils.simpleUUID();
|
||||
//请求参数
|
||||
String query = "Account=" + createFreeSpinRequest.getAccount()
|
||||
+ "&Currency=" + createFreeSpinRequest.getCurrency()
|
||||
|
|
@ -514,7 +520,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
|
||||
|
||||
GameFreeRecord gameFreeRecord = GameFreeRecord.builder()
|
||||
.currencyCode(gameSecretKey.getSystemCurrency())
|
||||
.currencyCode(createFreeSpinRequest.getSystemCurrency())
|
||||
.referenceId(referenceId)
|
||||
.platformCode(GamePlatforms.JILI.getInfo())
|
||||
.memberId(member.getId())
|
||||
|
|
@ -677,7 +683,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
cancelFreeSpinRequestDTO.setQuery(query);
|
||||
//获取key
|
||||
String key = this.getKey(cancelFreeSpinRequestDTO);
|
||||
JILICancelFreeSpinResponseDTO cancelFreeSpinResponseDTO = jiliClient.cancelFreeSpin(query + "&Key=" + key);
|
||||
JILICancelFreeSpinResponseDTO cancelFreeSpinResponseDTO = jiliClient.cancelFreeSpin(query + "&Key=" + key);
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(cancelFreeSpinResponseDTO.getErrorCode())) {
|
||||
List<GameFreeRecord> gameFreeRecords = gameFreeRecordService.selectGameFreeRecordList(GameFreeRecord.builder()
|
||||
|
|
@ -692,6 +698,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
throw new BaseException(cancelFreeSpinResponseDTO.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 游戏演示登录
|
||||
*
|
||||
|
|
@ -704,21 +711,25 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
*
|
||||
* @param betRecordJILIResponse 投注记录jiliresponse
|
||||
* @return {@link Integer }
|
||||
*/
|
||||
private void batchInsert(JILIBetRecordResponseDTO betRecordJILIResponse) {
|
||||
private void batchInsert(JILIBetRecordResponseDTO betRecordJILIResponse, BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
JILIBetRecordResponseDTO.DataBean dataBean = betRecordJILIResponse.getData();
|
||||
//数据转化
|
||||
for (JILIBetRecordDataResponseDTO jiliBetRecordDataResponseDTO : dataBean.getResult()) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(jiliBetRecordDataResponseDTO).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.systemCurrencyCode(betRecordByTimeDTO.getSystemCurrency())
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.currencyCode(betRecordByTimeDTO.getCurrency())
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.data(jiliBetRecordDataResponseDTO).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -727,7 +738,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,GamePlatforms.JILI.getInfo());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.JILI.getInfo());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
@ -750,9 +761,9 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
|
||||
//转化类
|
||||
JILIBetRecordDataResponseDTO jiliBetRecordDataResponseDTO = (JILIBetRecordDataResponseDTO) gamesDataBuildDTO.getData();
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.code(jiliBetRecordDataResponseDTO.getAgentId())
|
||||
.platformCode(GamePlatforms.JILI.getInfo()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .code(jiliBetRecordDataResponseDTO.getAgentId())
|
||||
// .platformCode(GamePlatforms.JILI.getInfo()).build());
|
||||
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(jiliBetRecordDataResponseDTO.getAccount());
|
||||
|
|
@ -773,7 +784,7 @@ public class GamesJILIServiceImpl implements IGamesService {
|
|||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(gameSecretKey.getSystemCurrency())
|
||||
.currencyCode(/*gameSecretKey.getSystemCurrency()*/gamesDataBuildDTO.getSystemCurrencyCode())
|
||||
.memberId(member.getId())
|
||||
.gameCode(jiliBetRecordDataResponseDTO.getGameId())
|
||||
.gameType(JILIGameType.findSystemByCode(jiliBetRecordDataResponseDTO.getGameCategoryId()))
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.km.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -20,12 +20,12 @@ import javax.annotation.Resource;
|
|||
public class MyKMAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.KM_API_BASE_URL_LOGIN);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"api");
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.KM.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "api");
|
||||
}
|
||||
}
|
||||
|
|
@ -2,34 +2,28 @@ package com.ff.game.api.km.impl;
|
|||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.alibaba.druid.support.json.JSONUtils;
|
||||
import com.ff.base.constant.CacheConstants;
|
||||
import com.ff.base.constant.ConfigConstants;
|
||||
import com.ff.base.constant.Constants;
|
||||
import com.ff.base.core.redis.RedisCache;
|
||||
import com.ff.base.enums.*;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.JsonUtil;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.base.utils.ip.IpUtils;
|
||||
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.dg.dto.DGBetRecordResponseDTO;
|
||||
import com.ff.game.api.dg.dto.DGResponse;
|
||||
import com.ff.game.api.dg.dto.DGUserListResponseDTO;
|
||||
import com.ff.game.api.jili.dto.JILIGamesDataDTO;
|
||||
import com.ff.game.api.km.client.KMClient;
|
||||
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.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
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.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -57,9 +51,8 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
public class GamesKMServiceImpl implements IGamesService {
|
||||
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
|
@ -67,11 +60,6 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -79,14 +67,6 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private KMClient KMClient;
|
||||
|
||||
|
|
@ -97,9 +77,6 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏id
|
||||
|
|
@ -191,14 +168,14 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
public MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO memberInfoRequestDTO) {
|
||||
log.info("GamesDGServiceImpl [getMemberInfo] 请求参数 {}", memberInfoRequestDTO);
|
||||
Map<String, Object> paramsMap = new HashMap<>();
|
||||
Member member = memberService.selectMemberByGameAccount(memberInfoRequestDTO.getAccounts());
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.KM.getInfo())
|
||||
.currency(member.getCurrencyCode())
|
||||
.build());
|
||||
// Member member = memberService.selectMemberByGameAccount(memberInfoRequestDTO.getAccounts());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.KM.getInfo())
|
||||
// .currency(member.getCurrencyCode())
|
||||
// .build());
|
||||
|
||||
paramsMap.put("userid", memberInfoRequestDTO.getAccounts());
|
||||
paramsMap.put("cur", currencyDTO.getCurrency());
|
||||
paramsMap.put("cur", memberInfoRequestDTO.getCurrency());
|
||||
Map<String, Object> headerMap = this.getKey(memberInfoRequestDTO);
|
||||
KMBalanceResponse memberInfo = KMClient.getMemberInfo(JsonUtil.mapToQueryString(paramsMap), headerMap);
|
||||
if (ObjectUtils.isEmpty(memberInfo.getErrorCode()) || this.getIsSuccess(memberInfo.getErrorCode())) {
|
||||
|
|
@ -219,26 +196,26 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
log.info("GamesKMServiceImpl [loginWithoutRedirect] 请求参数 {}", gamesLogin);
|
||||
String kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount());
|
||||
if (StringUtils.isEmpty(kmUserToken)) {
|
||||
Member member = memberService.selectMemberByGameAccount(gamesLogin.getAccount());
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.KM.getInfo())
|
||||
.currency(member.getCurrencyCode())
|
||||
.build());
|
||||
// Member member = memberService.selectMemberByGameAccount(gamesLogin.getAccount());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.KM.getInfo())
|
||||
// .currency(member.getCurrencyCode())
|
||||
// .build());
|
||||
|
||||
CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder()
|
||||
.account(gamesLogin.getAccount())
|
||||
.agentId(gamesLogin.getAgentId())
|
||||
.agentKey(gamesLogin.getAgentKey())
|
||||
.currency(currencyDTO.getCurrency())
|
||||
.currency(gamesLogin.getCurrency())
|
||||
.build();
|
||||
this.createMember(gamesBaseRequestDTO);
|
||||
kmUserToken = redisCache.getCacheObject(CacheConstants.KM_USER_TOKEN + gamesLogin.getAccount());
|
||||
}
|
||||
|
||||
String loginUrl = platformService.get(GamePlatforms.KM.getCode()).getUrlInfo().getLoginUrl();
|
||||
//String selectConfigByKey = configService.selectConfigByKey(Constants.KM_API_BASE_LOGIN_URL);
|
||||
|
||||
String selectConfigByKey = configService.selectConfigByKey(Constants.KM_API_BASE_LOGIN_URL);
|
||||
|
||||
return selectConfigByKey + "/gamelauncher?gpcode=" + gamesLogin.getGameType()
|
||||
return loginUrl + "/gamelauncher?gpcode=" + gamesLogin.getGameType()
|
||||
+ "&gcode=" + gamesLogin.getGameId()
|
||||
+ "&token=" + kmUserToken
|
||||
+ "&lang=" + gamesLogin.getLang();
|
||||
|
|
@ -292,11 +269,11 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
.anyMatch(pc -> pc.getCode().equals(mobile.getCode())))
|
||||
.collect(Collectors.toList());
|
||||
for (KMGameResponse.Game game : games) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(KMGameType.findSystemByCode(game.getProviderCode()))
|
||||
.platformCode(GamePlatforms.KM.getCode())
|
||||
.build();
|
||||
List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
// GamePlatform gamePlatform = GamePlatform.builder()
|
||||
// .platformType(KMGameType.findSystemByCode(game.getProviderCode()))
|
||||
// .platformCode(GamePlatforms.KM.getCode())
|
||||
// .build();
|
||||
/*List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
//没有此平台就新增一个平台
|
||||
if (CollectionUtils.isEmpty(gamePlatforms)) {
|
||||
gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(game.getProviderCode()));
|
||||
|
|
@ -305,9 +282,12 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = KMGameType.findSystemByCode(game.getProviderCode());
|
||||
Game gameOne = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.KM.getCode())
|
||||
.platformType(platformType)
|
||||
.gameCode(game.getCode())
|
||||
.build();
|
||||
List<Game> gameOnes = gameService.selectGameList(gameOne);
|
||||
|
|
@ -332,11 +312,11 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
*/
|
||||
private List<KMGameResponse.Game> gameList(KMGameResponse gameList, Integer ingress) {
|
||||
for (KMGameResponse.Game gamesDataDTO : gameList.getGames()) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode()))
|
||||
.platformCode(GamePlatforms.KM.getCode())
|
||||
.build();
|
||||
List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
// GamePlatform gamePlatform = GamePlatform.builder()
|
||||
// .platformType(KMGameType.findSystemByCode(gamesDataDTO.getProviderCode()))
|
||||
// .platformCode(GamePlatforms.KM.getCode())
|
||||
// .build();
|
||||
/*List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
//没有此平台就新增一个平台
|
||||
if (CollectionUtils.isEmpty(gamePlatforms)) {
|
||||
gamePlatform.setPlatformName(GamePlatforms.KM.getInfo() + KMGameType.findInfoByCode(gamesDataDTO.getProviderCode()));
|
||||
|
|
@ -345,9 +325,12 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = KMGameType.findSystemByCode(gamesDataDTO.getProviderCode());
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.KM.getCode())
|
||||
.platformType(platformType)
|
||||
.gameCode(gamesDataDTO.getCode())
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
|
|
@ -356,24 +339,29 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
game.setGameSourceType(gamesDataDTO.getProviderCode());
|
||||
game.setFreespin(Boolean.FALSE);
|
||||
game.setDemoStatus(gamesDataDTO.getSupportDemoUrl());
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.KM.getCode()) + 1);
|
||||
game.setGameName(gamesDataDTO.getName());
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
game.setIngress(ingress);
|
||||
game.setPlatformCode(GamePlatforms.KM.getCode());
|
||||
game.setPlatformType(platformType);
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getName(), "zh-CN"));
|
||||
game.setNameInfo(nameInfos);
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
gamesDataDTO.setSystemGameId(game.getId());
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
.gameName(game.getGameName())
|
||||
.langCode("zh-CN")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
// List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
// if (CollectionUtils.isEmpty(gameNames)) {
|
||||
// gameNameService.insertGameName(GameName.builder()
|
||||
// .gameId(game.getId())
|
||||
// .gameName(game.getGameName())
|
||||
// .langCode("zh-CN")
|
||||
// .createBy(Constants.SYSTEM)
|
||||
// .build());
|
||||
// }
|
||||
|
||||
}
|
||||
return gameList.getGames();
|
||||
|
|
@ -389,10 +377,10 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesKMServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.KM.getInfo())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.KM.getInfo())
|
||||
// .currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = GamePlatforms.KM.getInfo() + IdUtils.simpleUUID();
|
||||
|
|
@ -412,7 +400,7 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.KM.getInfo())
|
||||
|
|
@ -435,7 +423,7 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("userid", exchangeTransferMoneyRequestDTO.getAccount());
|
||||
params.put("amt", amount);
|
||||
params.put("cur", currencyDTO.getCurrency());
|
||||
params.put("cur", exchangeTransferMoneyRequestDTO.getCurrency());
|
||||
params.put("txid", transactionId);
|
||||
|
||||
Map<String, Object> headerMap = this.getKey(exchangeTransferMoneyRequestDTO);
|
||||
|
|
@ -508,9 +496,7 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
KMBetRecordResponse betRecordByTime = KMClient.getBetRecordByTime(JsonUtil.mapToQueryString(params), key);
|
||||
|
||||
if (ObjectUtils.isEmpty(betRecordByTime.getErrorCode()) || this.getIsSuccess(betRecordByTime.getErrorCode())) {
|
||||
this.batchInsert(betRecordByTime);
|
||||
|
||||
|
||||
this.batchInsert(betRecordByTime, betRecordByTimeDTO);
|
||||
return Boolean.TRUE;
|
||||
} else {
|
||||
log.error("GamesKMServiceImpl [getBetRecordByTime] 获取投注记录失败,错误代码{},错误信息{}", betRecordByTime.getErrorCode(), betRecordByTime.getErrorDescription());
|
||||
|
|
@ -569,7 +555,7 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
if (ObjectUtils.isEmpty(kickMember.getErrorCode()) || this.getIsSuccess(kickMember.getErrorCode())) {
|
||||
redisCache.deleteObject(CacheConstants.KM_USER_TOKEN + kickMemberRequestDTO.getAccount());
|
||||
return kickMember.isSuccess();
|
||||
}else {
|
||||
} else {
|
||||
throw new BaseException(kickMember.getDescription());
|
||||
}
|
||||
}
|
||||
|
|
@ -618,9 +604,10 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
log.info("GamesKMServiceImpl [gameDemoLogin] 请求参数 {}", gameDemoLoginRequestDTO);
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("lang", gameDemoLoginRequestDTO.getLang());
|
||||
String selectConfigByKey = configService.selectConfigByKey(Constants.KM_API_BASE_LOGIN_URL);
|
||||
String loginUrl = platformService.get(GamePlatforms.KM.getCode()).getUrlInfo().getLoginUrl();
|
||||
//String selectConfigByKey = configService.selectConfigByKey(Constants.KM_API_BASE_LOGIN_URL);
|
||||
return GameDemoLoginResponseDTO.builder()
|
||||
.url(selectConfigByKey + "/demolauncher?gpcode=" + gameDemoLoginRequestDTO.getGameType()
|
||||
.url(loginUrl + "/demolauncher?gpcode=" + gameDemoLoginRequestDTO.getGameType()
|
||||
+ "&gcode=" + gameDemoLoginRequestDTO.getGameId()
|
||||
+ "&lang=" + gameDemoLoginRequestDTO.getLang())
|
||||
.build();
|
||||
|
|
@ -632,14 +619,18 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param betRecordByTime dg投注记录响应dto
|
||||
*/
|
||||
private void batchInsert(KMBetRecordResponse betRecordByTime) {
|
||||
private void batchInsert(KMBetRecordResponse betRecordByTime, BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
List<KMBetRecordResponse.Bet> report = betRecordByTime.getBets();
|
||||
//数据转化
|
||||
for (KMBetRecordResponse.Bet bean : report) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
//.systemCurrencyCode(systemCurrency)
|
||||
//.currencyCode(targetCurrency)
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.data(bean).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -670,12 +661,11 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
public GameBettingDetails dataBuild(GamesDataBuildDTO gamesDataBuildDTO) {
|
||||
//转化类
|
||||
KMBetRecordResponse.Bet resultBean = (KMBetRecordResponse.Bet) gamesDataBuildDTO.getData();
|
||||
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.KM.getInfo())
|
||||
.currency(resultBean.getCurrency())
|
||||
.build());
|
||||
//
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.KM.getInfo())
|
||||
// .currency(resultBean.getCurrency())
|
||||
// .build());
|
||||
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getUserId());
|
||||
|
|
@ -683,16 +673,17 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
return null;
|
||||
}
|
||||
List<KMGameResponse.Game> gamesDatas = redisCache.getCacheList(CacheConstants.KM_GAMES);
|
||||
Map<String, KMGameResponse.Game> dataDTOMap = gamesDatas.stream() .collect(Collectors.toMap(
|
||||
Map<String, KMGameResponse.Game> dataDTOMap = gamesDatas.stream().collect(Collectors.toMap(
|
||||
KMGameResponse.Game::getCode,
|
||||
e -> e,
|
||||
(existing, replacement) -> existing
|
||||
));;
|
||||
));
|
||||
;
|
||||
KMGameResponse.Game gamesDataDTO = dataDTOMap.get(resultBean.getGCode());
|
||||
|
||||
//输赢状态
|
||||
Integer gameStatus = GameStatus.FLAT.getCode();
|
||||
BigDecimal payoffAmount =NumberUtil.sub(resultBean.getWinAmount(), resultBean.getRiskAmount().abs());
|
||||
BigDecimal payoffAmount = NumberUtil.sub(resultBean.getWinAmount(), resultBean.getRiskAmount().abs());
|
||||
if (payoffAmount.compareTo(BigDecimal.ZERO) > 0) {
|
||||
gameStatus = GameStatus.WIN.getCode();
|
||||
} else if (payoffAmount.compareTo(BigDecimal.ZERO) < 0) {
|
||||
|
|
@ -700,20 +691,22 @@ public class GamesKMServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
Platform platform = gamesDataBuildDTO.getPlatform();
|
||||
String systemCurrency = platform.getOurCurrency(resultBean.getCurrency());
|
||||
//数据构造
|
||||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(systemCurrency)
|
||||
.memberId(member.getId())
|
||||
.gameCode(gamesDataDTO.getCode())
|
||||
.gameType(PlatformType.CARD_GAME.getCode())
|
||||
.platformCode(GamePlatforms.KM.getInfo())
|
||||
.platformCode(GamePlatforms.KM.getCode())
|
||||
.gameId(GAME_ID)
|
||||
.gameName(gamesDataDTO.getName())
|
||||
.gameStatus(gameStatus)
|
||||
.gameStatusType(1)
|
||||
.gameCurrencyCode(currencyDTO.getCurrency())
|
||||
.gameCurrencyCode(resultBean.getCurrency())
|
||||
.account(resultBean.getUserId())
|
||||
.wagersId(resultBean.getId())
|
||||
.wagersTime(resultBean.getBeton().getTime())
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.meitian.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -18,12 +18,12 @@ import javax.annotation.Resource;
|
|||
public class MeiTianAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.MEITIAN_API_BASE_URL);
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.MT.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "services");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
package com.ff.game.api.meitian.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* JiLi游戏纪录查询返回数据类型
|
||||
*
|
||||
* @author shi
|
||||
* @date 2024/10/21
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class JILIBetRecordDataResponseDTO {
|
||||
/**
|
||||
* 账户
|
||||
*/
|
||||
@JsonProperty("Account")
|
||||
private String account;
|
||||
/**
|
||||
* 投注id
|
||||
*/
|
||||
@JsonProperty("WagersId")
|
||||
private String wagersId;
|
||||
/**
|
||||
* 游戏id
|
||||
*/
|
||||
@JsonProperty("GameId")
|
||||
private String gameId;
|
||||
/**
|
||||
* 下注时间
|
||||
*/
|
||||
@JsonProperty("WagersTime")
|
||||
private Long wagersTime;
|
||||
/**
|
||||
* 投注金额
|
||||
*/
|
||||
@JsonProperty("BetAmount")
|
||||
private BigDecimal betAmount;
|
||||
/**
|
||||
* 回报时间
|
||||
*/
|
||||
@JsonProperty("PayoffTime")
|
||||
private Long payoffTime;
|
||||
/**
|
||||
* 支付金额
|
||||
*/
|
||||
@JsonProperty("PayoffAmount")
|
||||
private BigDecimal payoffAmount;
|
||||
/**
|
||||
* 注单状态 1: 赢 2: 输 3: 平局
|
||||
*/
|
||||
@JsonProperty("Status")
|
||||
private int status;
|
||||
/**
|
||||
* 结算时间
|
||||
*/
|
||||
@JsonProperty("SettlementTime")
|
||||
private Long settlementTime;
|
||||
/**
|
||||
* 游戏类别id
|
||||
*/
|
||||
@JsonProperty("GameCategoryId")
|
||||
private int gameCategoryId;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@JsonProperty("Type")
|
||||
private int type;
|
||||
/**
|
||||
* 代理id
|
||||
*/
|
||||
@JsonProperty("AgentId")
|
||||
private String agentId;
|
||||
/**
|
||||
* 有效投注金额
|
||||
*/
|
||||
@JsonProperty("Turnover")
|
||||
private BigDecimal turnover;
|
||||
/**
|
||||
* 圆形指数
|
||||
*/
|
||||
@JsonProperty("RoundIndex")
|
||||
private long roundIndex;
|
||||
}
|
||||
|
|
@ -10,7 +10,6 @@ import com.ff.base.enums.*;
|
|||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.domain.SysConfig;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.system.service.impl.SysConfigServiceImpl;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.sign.Md5Utils;
|
||||
|
|
@ -20,8 +19,9 @@ import com.ff.game.api.meitian.client.MeiTianClient;
|
|||
import com.ff.game.api.meitian.dto.*;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.game.service.IGameBettingDetailsService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -55,20 +55,12 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
public class MeiTianGameServiceImpl implements IGamesService {
|
||||
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -76,21 +68,12 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private MeiTianClient meiTianClient;
|
||||
|
||||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
@Autowired
|
||||
private SysConfigServiceImpl sysConfigServiceImpl;
|
||||
|
||||
|
|
@ -112,11 +95,10 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean createMember(CreateMemberRequestDTO createMemberRequestDTO) {
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(createMemberRequestDTO.getAgentId());
|
||||
|
||||
String playerName = createMemberRequestDTO.getAccount();
|
||||
String merchantId = createMemberRequestDTO.getAgentId();
|
||||
String md5Password = Md5Utils.md5New(gameSecretKey.getPassword());
|
||||
String md5Password = Md5Utils.md5New(createMemberRequestDTO.getKeyInfo().getPassword());
|
||||
Map<String, String> rawMap = new LinkedHashMap<>();
|
||||
rawMap.put("nickname", createMemberRequestDTO.getAccount());
|
||||
rawMap.put("playerLevel", "0");
|
||||
|
|
@ -128,7 +110,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
log.error("[MeiTian] encode rawData failure", e);
|
||||
throw new ApiException(ErrorCode.ERROR.getCode());
|
||||
}
|
||||
String md5Code = Md5Utils.md5New(gameSecretKey.getKey() + rawData);//MD5(key+rawData);
|
||||
String md5Code = Md5Utils.md5New(createMemberRequestDTO.getKeyInfo().getKey() + rawData);//MD5(key+rawData);
|
||||
MeiTianCreateMemberResponseDTO createMemberResponseDTO =
|
||||
meiTianClient.createMember(
|
||||
playerName,
|
||||
|
|
@ -181,11 +163,10 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public String loginWithoutRedirect(GamesLogin gamesLogin) {
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(gamesLogin.getAgentId());
|
||||
|
||||
String merchantId = gamesLogin.getAgentId();
|
||||
String playerName = gamesLogin.getAccount();
|
||||
String md5Password = Md5Utils.md5New(gameSecretKey.getPassword());
|
||||
String md5Password = Md5Utils.md5New(gamesLogin.getKeyInfo().getPassword());
|
||||
Map<String, String> rawMap = new LinkedHashMap<>();
|
||||
/*rawMap.put("gameHall ", gamesLogin.getGameType());*/
|
||||
rawMap.put("gameCode", gamesLogin.getGameId());
|
||||
|
|
@ -200,7 +181,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
log.error("[MeiTian] encode rawData failure", e);
|
||||
throw new ApiException(ErrorCode.ERROR.getCode());
|
||||
}
|
||||
String code = Md5Utils.md5New(gameSecretKey.getKey() + rawData);
|
||||
String code = Md5Utils.md5New(gamesLogin.getKeyInfo().getKey() + rawData);
|
||||
MeiTianLoginResultDTO loginWithoutRedirectResponseDTO =
|
||||
meiTianClient.loginWithoutRedirect(
|
||||
merchantId,
|
||||
|
|
@ -236,22 +217,25 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
MeiTianGamesDTO gameList = new MeiTianGamesDTO();
|
||||
|
||||
for (MeiTianGameDataDTO gamesDataDTO : gameList.getData()) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
/* GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId()))
|
||||
.platformCode(GamePlatforms.MeiTian.getCode())
|
||||
.platformCode(GamePlatforms.MT.getCode())
|
||||
.build();
|
||||
List<GamePlatform> gamePlatforms = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
//没有此平台就新增一个平台
|
||||
if (CollectionUtils.isEmpty(gamePlatforms)) {
|
||||
gamePlatform.setPlatformName(GamePlatforms.MeiTian.getInfo() + MeiTianGameType.findInfoByCode(gamesDataDTO.getGameCategoryId()));
|
||||
gamePlatform.setPlatformName(GamePlatforms.MT.getInfo() + MeiTianGameType.findInfoByCode(gamesDataDTO.getGameCategoryId()));
|
||||
gamePlatform.setSortNo(gamePlatformService.selectMaxSortNo() + 1);
|
||||
gamePlatform.setCreateBy(Constants.SYSTEM);
|
||||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = MeiTianGameType.findSystemByCode(gamesDataDTO.getGameCategoryId());
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.MT.getCode())
|
||||
.platformType(platformType)
|
||||
.gameCode(String.valueOf(gamesDataDTO.getGameId()))
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
|
|
@ -259,16 +243,23 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
if (CollectionUtils.isEmpty(games)) {
|
||||
game.setGameSourceType(String.valueOf(gamesDataDTO.getGameCategoryId()));
|
||||
game.setFreespin(false);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.MT.getCode()) + 1);
|
||||
game.setGameName(gamesDataDTO.getCnName());
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
game.setPlatformType(platformType);
|
||||
game.setPlatformCode(GamePlatforms.MT.getCode());
|
||||
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getCnName(), "zh-CN"));
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getEnName(), "en-US"));
|
||||
game.setNameInfo(nameInfos);
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
gamesDataDTO.setSystemGameId(game.getId());
|
||||
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
/*List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
|
|
@ -276,15 +267,13 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
.langCode("zh-CN")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
//
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
.gameName(gamesDataDTO.getEnName())
|
||||
.langCode("en-US")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -304,12 +293,12 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
@Override
|
||||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .currency(exchangeTransferMoneyRequestDTO.getCurrency()).build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = GamePlatforms.MeiTian.getCode() + IdUtils.simpleUUID();
|
||||
String transactionId = GamePlatforms.MT.getCode() + IdUtils.simpleUUID();
|
||||
|
||||
List<GameExchangeMoney> gameExchangeMonies = gameExchangeMoneyService.selectGameExchangeMoneyList(
|
||||
GameExchangeMoney.builder()
|
||||
|
|
@ -328,17 +317,18 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(gameSecretKey.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.MeiTian.getCode())
|
||||
.platformCode(GamePlatforms.MT.getCode())
|
||||
.build();
|
||||
exchangeMoney.setCreateBy(Constants.SYSTEM);
|
||||
//接口限制限制50字符
|
||||
exchangeMoney.setTransactionId(transactionId);
|
||||
|
||||
|
||||
String key = gameSecretKey.getKey();
|
||||
// String key = gameSecretKey.getKey();
|
||||
String key = exchangeTransferMoneyRequestDTO.getAgentKey();
|
||||
String merchantId = exchangeTransferMoneyRequestDTO.getAgentId();
|
||||
String playerName = exchangeTransferMoneyRequestDTO.getAccount();
|
||||
String coins = exchangeTransferMoneyRequestDTO.getAmount().setScale(4, RoundingMode.DOWN).toString();
|
||||
|
|
@ -439,7 +429,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
boolean doSyncRecordByRecordID(BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
String configKey = GamePlatforms.MeiTian.getCode() + ":lastRecordID";
|
||||
String configKey = GamePlatforms.MT.getCode() + ":lastRecordID";
|
||||
String lastRecordID = sysConfigServiceImpl.selectConfigByKey(configKey);
|
||||
long recordID = 0;
|
||||
if (lastRecordID == null || lastRecordID.isEmpty()) {
|
||||
|
|
@ -470,7 +460,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
return Boolean.TRUE;
|
||||
}
|
||||
//数据插入
|
||||
this.batchInsert(recordResponse);
|
||||
this.batchInsert(recordResponse, betRecordByTimeDTO);
|
||||
MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1);
|
||||
SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey);
|
||||
if (config == null) {
|
||||
|
|
@ -496,7 +486,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
boolean doSyncRecordByDate(BetRecordByTimeDTO betRecordByTimeDTO, int daysToSubtract) {
|
||||
|
||||
String date = getDateStr(daysToSubtract);
|
||||
String configKey = GamePlatforms.MeiTian.getCode() + ":lastSyncDate";
|
||||
String configKey = GamePlatforms.MT.getCode() + ":lastSyncDate";
|
||||
String syncDateStr = sysConfigServiceImpl.selectConfigByKey(configKey);
|
||||
Map<String, Long> syncDateMap = new HashMap<>();
|
||||
long recordID = 0;
|
||||
|
|
@ -538,7 +528,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
return Boolean.TRUE;
|
||||
}
|
||||
//数据插入
|
||||
this.batchInsert(recordResponse);
|
||||
this.batchInsert(recordResponse, betRecordByTimeDTO);
|
||||
MeiTianBetRecordResponseDTO.DataBean dataBean = dataList.get(dataList.size() - 1);
|
||||
syncDateMap.put(date, Long.parseLong(dataBean.getRowID()));
|
||||
SysConfig config = sysConfigServiceImpl.getByConfigKey(configKey);
|
||||
|
|
@ -597,9 +587,8 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public GetGameDetailResponseDTO getGameDetail(GetGameDetailRequestDTO getGameDetailRequestDTO) {
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(getGameDetailRequestDTO.getAgentId());
|
||||
|
||||
String key = gameSecretKey.getKey();
|
||||
String key = getGameDetailRequestDTO.getKeyInfo().getKey();
|
||||
String merchantId = getGameDetailRequestDTO.getAgentId();
|
||||
Map<String, String> rawMap = new LinkedHashMap<>();
|
||||
rawMap.put("rowID", getGameDetailRequestDTO.getWagersId());
|
||||
|
|
@ -700,7 +689,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param recordResponse 投注记录
|
||||
*/
|
||||
private void batchInsert(MeiTianBetRecordResponseDTO recordResponse) {
|
||||
private void batchInsert(MeiTianBetRecordResponseDTO recordResponse, BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
|
|
@ -712,6 +701,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
//数据转化
|
||||
for (MeiTianBetRecordResponseDTO.DataBean dataBean : dataList) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.data(dataBean).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
|
|
@ -721,7 +711,7 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.MeiTian.getCode());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.MT.getCode());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
@ -744,10 +734,10 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
|
||||
//转化类
|
||||
MeiTianBetRecordResponseDTO.DataBean dataBean = (MeiTianBetRecordResponseDTO.DataBean) gamesDataBuildDTO.getData();
|
||||
GameSecretKeyCurrencyDTO gameSecretKey =
|
||||
gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.currency(dataBean.getCurrency())
|
||||
.platformCode(GamePlatforms.MeiTian.getCode()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey =
|
||||
// gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .currency(dataBean.getCurrency())
|
||||
// .platformCode(GamePlatforms.MT.getCode()).build());
|
||||
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(dataBean.getPlayerName());
|
||||
|
|
@ -761,15 +751,17 @@ public class MeiTianGameServiceImpl implements IGamesService {
|
|||
|
||||
int compareResult = originPayoffAmount.compareTo(BigDecimal.ZERO);
|
||||
long gameTime = getTime(dataBean.getGameDate());
|
||||
Platform platform = gamesDataBuildDTO.getPlatform();
|
||||
String systemCurrency = platform.getOurCurrency(dataBean.getCurrency());
|
||||
//数据构造
|
||||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(gameSecretKey.getSystemCurrency())
|
||||
.currencyCode(systemCurrency)
|
||||
.memberId(member.getId())
|
||||
.gameCode(dataBean.getGameCode())
|
||||
.gameType(MeiTianGameType.findSystemByCode(Integer.parseInt(dataBean.getGameType())))
|
||||
.platformCode(GamePlatforms.MeiTian.getCode())
|
||||
.platformCode(GamePlatforms.MT.getCode())
|
||||
.gameId(gamesDataDTO.getSystemGameId())
|
||||
.gameName(gamesDataDTO.getCnName())
|
||||
.gameStatus(compareResult > 0 ? GameStatus.WIN.getCode() : compareResult < 0 ? GameStatus.FAIL.getCode() : GameStatus.FLAT.getCode())
|
||||
|
|
|
|||
|
|
@ -3,22 +3,24 @@ package com.ff.game.api.ng.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
public class MyNGAddressSource implements AddressSource {
|
||||
public class MyNGAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
private IPlatformService platformService;
|
||||
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.NG_API_BASE_URL);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"api");
|
||||
//String apiBaseUrl = configService.selectConfigByKey(Constants.NG_API_BASE_URL);
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.PG.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "api");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.ff.game.api.ng.service.impl;
|
|||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.ff.base.config.RedisConfig;
|
||||
import com.ff.base.constant.CacheConstants;
|
||||
import com.ff.base.constant.Constants;
|
||||
import com.ff.base.core.redis.RedisCache;
|
||||
|
|
@ -11,22 +10,20 @@ import com.ff.base.exception.base.ApiException;
|
|||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.JsonUtil;
|
||||
import com.ff.base.utils.SleepUtil;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
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.jili.dto.*;
|
||||
import com.ff.game.api.ng.client.NGClient;
|
||||
import com.ff.game.api.ng.dto.*;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.api.xk.dto.XKBetRecordResponseDTO;
|
||||
import com.ff.game.api.xk.dto.XKGamesDTO;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.*;
|
||||
import com.ff.game.service.*;
|
||||
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.member.domain.Member;
|
||||
import com.ff.member.service.IMemberService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -42,15 +39,12 @@ import org.springframework.util.ObjectUtils;
|
|||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.security.SecureRandom;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
|
@ -74,11 +68,6 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -86,33 +75,15 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private NGClient ngClient;
|
||||
|
||||
|
||||
@Resource
|
||||
private KeyConfig keyConfig;
|
||||
|
||||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyLangService gameSecretKeyLangService;
|
||||
|
||||
|
||||
@Autowired
|
||||
@Qualifier("threadPoolTaskExecutor")
|
||||
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
||||
|
|
@ -228,7 +199,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
paramsMap.put("lang", gamesLogin.getLang());
|
||||
paramsMap.put("gameCode", gamesLogin.getGameId());
|
||||
paramsMap.put("returnUrl", gamesLogin.getHomeUrl());
|
||||
paramsMap.put("ingress", PlatformHomeType.WEB.getValue().equals(gamesLogin.getPlatform()) ? IngressType.PC_WEB.getValue() : IngressType.MOBILE_WEB.getValue());
|
||||
paramsMap.put("ingress", PlatformHomeType.WEB.getValue().equals(gamesLogin.getVendor()) ? IngressType.PC_WEB.getValue() : IngressType.MOBILE_WEB.getValue());
|
||||
Map<String, String> headerMap = this.getKey(gamesLogin);
|
||||
ApiNGResponseDTO<ApiLoginResponseDTO> apiLoginResponseDTOApiNGResponseDTO = ngClient.loginWithoutRedirect(paramsMap, headerMap);
|
||||
if (this.getIsSuccess(apiLoginResponseDTOApiNGResponseDTO.getCode())) {
|
||||
|
|
@ -261,7 +232,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
ApiNGResponseDTO<List<ApiGameInfoResponseDTO>> gameList = ngClient.getGameList(paramsMap, headerMap);
|
||||
if (this.getIsSuccess(gameList.getCode())) {
|
||||
for (ApiGameInfoResponseDTO apiGameInfoResponseDTO : gameList.getData()) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
/*GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType()))
|
||||
.platformCode(GamePlatforms.PG.getCode())
|
||||
.build();
|
||||
|
|
@ -274,9 +245,12 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = NGGameType.findSystemByCode(apiGameInfoResponseDTO.getGameType());
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
// .platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.PG.getCode())
|
||||
.platformType(platformType)
|
||||
.gameCode(apiGameInfoResponseDTO.getGameCode())
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
|
|
@ -285,15 +259,22 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
game.setGameSourceType(String.valueOf(apiGameInfoResponseDTO.getGameType()));
|
||||
game.setFreespin(Boolean.FALSE);
|
||||
game.setDemoStatus(Boolean.TRUE);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.PG.getCode()) + 1);
|
||||
game.setGameName(apiGameInfoResponseDTO.getGameName().get("zh-hans"));
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
game.setPlatformCode(GamePlatforms.PG.getCode());
|
||||
game.setPlatformType(platformType);
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("zh-hans"), "zh-CN"));
|
||||
nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("zh-hant"), "zh-TW"));
|
||||
nameInfos.add(new NameInfo(apiGameInfoResponseDTO.getGameName().get("en"), "en-US"));
|
||||
game.setNameInfo(nameInfos);
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
apiGameInfoResponseDTO.setSystemGameId(game.getId());
|
||||
Map<String, String> gameName = apiGameInfoResponseDTO.getGameName();
|
||||
/*Map<String, String> gameName = apiGameInfoResponseDTO.getGameName();
|
||||
for (String key : gameName.keySet()) {
|
||||
String name = gameName.get(key);
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(name).build());
|
||||
|
|
@ -318,7 +299,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -343,11 +324,11 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesNGServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.PG.getCode())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.PG.getCode())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = gameExchangeMoneyService.getTransactionId(GamePlatforms.PG.getCode(), 32);
|
||||
|
|
@ -367,7 +348,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.PG.getCode())
|
||||
|
|
@ -381,7 +362,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
.accounts(member.getGameAccount())
|
||||
.agentId(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.agentKey(exchangeTransferMoneyRequestDTO.getAgentKey())
|
||||
.currency(currencyDTO.getCurrency())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.build();
|
||||
MemberInfoResponseDTO memberInfo = this.getMemberInfo(gamesBaseRequestDTO);
|
||||
//判断是不是转出
|
||||
|
|
@ -393,7 +374,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
Map<String, Object> paramsMap = new HashMap<>();
|
||||
paramsMap.put("platType", NGPlatforms.PG.getCode());
|
||||
paramsMap.put("playerId", exchangeTransferMoneyRequestDTO.getAccount());
|
||||
paramsMap.put("currency", currencyDTO.getCurrency());
|
||||
paramsMap.put("currency", exchangeTransferMoneyRequestDTO.getCurrency());
|
||||
paramsMap.put("type", type);
|
||||
paramsMap.put("amount", exchangeTransferMoneyRequestDTO.getAmount());
|
||||
paramsMap.put("orderId", transactionId);
|
||||
|
|
@ -408,7 +389,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
gameExchangeMoneyService.insertGameExchangeMoney(exchangeMoney);
|
||||
ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO();
|
||||
exchangeTransferStatusRequestDTO.setAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
exchangeTransferStatusRequestDTO.setCurrency(currencyDTO.getCurrency());
|
||||
exchangeTransferStatusRequestDTO.setCurrency(exchangeTransferMoneyRequestDTO.getCurrency());
|
||||
exchangeTransferStatusRequestDTO.setOrderId(transactionId);
|
||||
exchangeTransferStatusRequestDTO.setAgentId(exchangeTransferMoneyRequestDTO.getAgentId());
|
||||
exchangeTransferStatusRequestDTO.setAgentKey(exchangeTransferMoneyRequestDTO.getAgentKey());
|
||||
|
|
@ -474,19 +455,21 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
@Override
|
||||
public Boolean getBetRecordByTime(BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
|
||||
GameSecretKeyCurrencyDTO gameSecretKeyDTO = new GameSecretKeyCurrencyDTO();
|
||||
gameSecretKeyDTO.setPlatformCodes(NGPlatforms.getAllPlatforms());
|
||||
List<GameSecretKeyCurrencyDTO> currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO);
|
||||
List<String> currencys = currencyDTOList.stream()
|
||||
.map(GameSecretKeyCurrencyDTO::getCurrency)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKeyDTO = new GameSecretKeyCurrencyDTO();
|
||||
// gameSecretKeyDTO.setPlatformCodes(NGPlatforms.getAllPlatforms());
|
||||
// List<GameSecretKeyCurrencyDTO> currencyDTOList = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTOList(gameSecretKeyDTO);
|
||||
// List<String> currencys = currencyDTOList.stream()
|
||||
// .map(GameSecretKeyCurrencyDTO::getCurrency)
|
||||
// .distinct()
|
||||
// .collect(Collectors.toList());
|
||||
|
||||
|
||||
Platform platform = betRecordByTimeDTO.getVendor();
|
||||
Set<String> cacheSet = redisCache.getCacheSet(CacheConstants.PG_GAMES_BET_CURRENCY);
|
||||
if (CollectionUtils.isEmpty(cacheSet)) {
|
||||
cacheSet = new HashSet<>();
|
||||
}
|
||||
List<String> currencys = new ArrayList<>(platform.getCurrencyInfo().values());
|
||||
//如果长度一致则清空缓存循环币种
|
||||
if (cacheSet.size() >= currencys.size()) {
|
||||
cacheSet = new HashSet<>();
|
||||
|
|
@ -497,22 +480,24 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
|
||||
String firstCurrency = currencys.get(0);
|
||||
|
||||
GameSecretKeyCurrencyDTO currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.PG.getCode())
|
||||
.currency(firstCurrency)
|
||||
.build());
|
||||
// GameSecretKeyCurrencyDTO currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.PG.getCode())
|
||||
// .currency(firstCurrency)
|
||||
// .build());
|
||||
|
||||
|
||||
betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
|
||||
betRecordByTimeDTO.setAgentKey(currencyDTO.getKey());
|
||||
// betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
|
||||
// betRecordByTimeDTO.setAgentKey(currencyDTO.getKey());
|
||||
int pageNo = 1;
|
||||
int pageSize = 2000;
|
||||
Map<String, Object> paramsMap = new HashMap<>();
|
||||
paramsMap.put("currency", currencyDTO.getCurrency());
|
||||
paramsMap.put("currency", /*currencyDTO.getCurrency()*/ firstCurrency);
|
||||
paramsMap.put("pageNo", pageNo);
|
||||
paramsMap.put("pageSize", pageSize);
|
||||
Map<String, String> key = this.getKey(betRecordByTimeDTO);
|
||||
|
||||
String systemCurrency = platform.getOurCurrency(firstCurrency);
|
||||
|
||||
|
||||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTime = ngClient.getBetRecordByTime(paramsMap, key);
|
||||
|
||||
|
|
@ -526,7 +511,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
|
||||
ApiGameBetRecordPageResponseDTO data = result.getData();
|
||||
//数据组装
|
||||
this.batchInsert(data);
|
||||
this.batchInsert(data, systemCurrency, firstCurrency);
|
||||
|
||||
//总页数
|
||||
// 计算总页数,确保不会遗漏
|
||||
|
|
@ -537,19 +522,19 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
pageNoAtomic.incrementAndGet();
|
||||
//请求参数
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("currency", currencyDTO.getCurrency());
|
||||
paramMap.put("currency", /*currencyDTO.getCurrency()*/firstCurrency);
|
||||
paramMap.put("pageNo", pageNoAtomic.get());
|
||||
paramMap.put("pageSize", pageSize);
|
||||
SleepUtil.sleep(10000);
|
||||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key);
|
||||
data = betRecordByTimePage.getData();
|
||||
//数据组装
|
||||
this.batchInsert(data);
|
||||
this.batchInsert(data, systemCurrency, firstCurrency);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
getBetRecordByHistoryTime(betRecordByTimeDTO, currencyDTO);
|
||||
getBetRecordByHistoryTime(betRecordByTimeDTO, systemCurrency, firstCurrency);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -557,9 +542,9 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
* 按历史时间获取投注记录
|
||||
*
|
||||
* @param betRecordByTimeDTO 按时间dto投注记录
|
||||
* @param currencyDTO 货币dto
|
||||
* @param currency 货币
|
||||
*/
|
||||
private void getBetRecordByHistoryTime(BetRecordByTimeDTO betRecordByTimeDTO, GameSecretKeyCurrencyDTO currencyDTO) {
|
||||
private void getBetRecordByHistoryTime(BetRecordByTimeDTO betRecordByTimeDTO, String systemCurrency, String currency /*GameSecretKeyCurrencyDTO currencyDTO*/) {
|
||||
|
||||
//捞取指定30分钟前的数据
|
||||
Long startTimes = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -30);
|
||||
|
|
@ -587,12 +572,12 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
.format(Instant.ofEpochMilli(betRecordByTimeDTO.getEndTime()));
|
||||
|
||||
|
||||
betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
|
||||
betRecordByTimeDTO.setAgentKey(currencyDTO.getKey());
|
||||
//betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
|
||||
//betRecordByTimeDTO.setAgentKey(currencyDTO.getKey());
|
||||
int pageNo = 1;
|
||||
int pageSize = 2000;
|
||||
Map<String, Object> paramsMap = new HashMap<>();
|
||||
paramsMap.put("currency", currencyDTO.getCurrency());
|
||||
paramsMap.put("currency", /*currencyDTO.getCurrency()*/ currency);
|
||||
paramsMap.put("pageNo", pageNo);
|
||||
paramsMap.put("pageSize", pageSize);
|
||||
paramsMap.put("startTime", startTime);
|
||||
|
|
@ -610,7 +595,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
|
||||
ApiGameBetRecordPageResponseDTO data = result.getData();
|
||||
//数据组装
|
||||
this.batchInsert(data);
|
||||
this.batchInsert(data, systemCurrency, currency);
|
||||
|
||||
//总页数
|
||||
// 计算总页数,确保不会遗漏
|
||||
|
|
@ -621,7 +606,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
pageNoAtomic.incrementAndGet();
|
||||
//请求参数
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("currency", currencyDTO.getCurrency());
|
||||
paramMap.put("currency", /*currencyDTO.getCurrency()*/ currency);
|
||||
paramMap.put("pageNo", pageNoAtomic.get());
|
||||
paramMap.put("pageSize", pageSize);
|
||||
paramMap.put("startTime", startTime);
|
||||
|
|
@ -630,13 +615,14 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key);
|
||||
data = betRecordByTimePage.getData();
|
||||
//数据组装
|
||||
this.batchInsert(data);
|
||||
this.batchInsert(data, systemCurrency, currency);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 按历史时间获取投注记录
|
||||
*
|
||||
|
|
@ -728,6 +714,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* 游戏演示登录
|
||||
*
|
||||
|
|
@ -740,7 +727,6 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 数据构建
|
||||
*
|
||||
|
|
@ -759,15 +745,18 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
String platform = ngPlatforms.getPlatform();
|
||||
List<Game> games = gameService.selectGameDTOList(GameDTO.builder().gameName(resultBean.getGameName()).platformCode(platform).build());
|
||||
List<Game> games = gameService.selectGameDTOList(GameDTO.builder()
|
||||
.gameName(resultBean.getGameName())
|
||||
.platformCode(platform)
|
||||
.build());
|
||||
if (CollectionUtils.isEmpty(games)) {
|
||||
return null;
|
||||
}
|
||||
Game gamesDataDTO = games.get(0);
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCodes(NGPlatforms.getAllPlatforms())
|
||||
.currency(resultBean.getCurrency())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCodes(NGPlatforms.getAllPlatforms())
|
||||
// .currency(resultBean.getCurrency())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getPlayerId());
|
||||
if (ObjectUtils.isEmpty(member)) {
|
||||
|
|
@ -787,7 +776,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(gamesDataBuildDTO.getSystemCurrencyCode())
|
||||
.memberId(member.getId())
|
||||
.gameCode(gamesDataDTO.getGameCode())
|
||||
.gameType(NGGameType.findSystemByCode(resultBean.getGameType()))
|
||||
|
|
@ -823,12 +812,15 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param data 数据
|
||||
*/
|
||||
private synchronized void batchInsert(ApiGameBetRecordPageResponseDTO data) {
|
||||
private synchronized void batchInsert(ApiGameBetRecordPageResponseDTO data, String systemCurrency, String currency) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据转化
|
||||
for (ApiGameBetRecordPageResponseDTO.GameBetRecord bean : data.getList()) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.systemCurrencyCode(systemCurrency)
|
||||
.currencyCode(currency)
|
||||
.data(bean).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -837,7 +829,7 @@ public class GamesPGServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,NGPlatforms.PG.getPlatform());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, NGPlatforms.PG.getPlatform());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.pgx.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -20,12 +20,13 @@ import javax.annotation.Resource;
|
|||
public class MyPGXAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.PGX_API_BASE_URL);
|
||||
return new ForestAddress("http",apiBaseUrl, 80,"");
|
||||
// String apiBaseUrl = configService.selectConfigByKey(Constants.PGX_API_BASE_URL);
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.PGX.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("http", apiBaseUrl, 80, "");
|
||||
}
|
||||
}
|
||||
|
|
@ -15,17 +15,13 @@ import com.ff.base.utils.JsonUtil;
|
|||
import com.ff.base.utils.sign.Md5Utils;
|
||||
import com.ff.config.KeyConfig;
|
||||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.dg.dto.DGBetRecordResponseDTO;
|
||||
import com.ff.game.api.ng.dto.ApiExchangeTransferStatusResponseDTO;
|
||||
import com.ff.game.api.pgx.client.PGXClient;
|
||||
import com.ff.game.api.pgx.dto.*;
|
||||
import com.ff.game.api.request.*;
|
||||
import com.ff.game.api.xk.dto.XKBetRecordResponseDTO;
|
||||
import com.ff.game.api.xk.dto.XKGamesDTO;
|
||||
import com.ff.game.api.xk.dto.XKKickMemberDTO;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.game.service.IGameBettingDetailsService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -37,7 +33,10 @@ import org.springframework.util.ObjectUtils;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -63,10 +62,6 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -74,14 +69,6 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private PGXClient PGXClient;
|
||||
|
||||
|
|
@ -92,9 +79,6 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
/**
|
||||
* 获得就是成功
|
||||
|
|
@ -158,11 +142,12 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
@Override
|
||||
public MemberInfoResponseDTO getMemberInfo(MemberInfoRequestDTO memberInfoRequestDTO) {
|
||||
log.info("GamesPGXServiceImpl [getMemberInfo] 请求参数 {}", memberInfoRequestDTO);
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(memberInfoRequestDTO.getAgentId());
|
||||
// GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(memberInfoRequestDTO.getAgentId());
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("operatorcode", memberInfoRequestDTO.getAgentId());
|
||||
params.put("password", gameSecretKey.getPassword());
|
||||
params.put("providercode", gameSecretKey.getProviderCode());
|
||||
KeyInfo keyInfo = memberInfoRequestDTO.getKeyInfo();
|
||||
params.put("password", keyInfo.getPassword());
|
||||
params.put("providercode", keyInfo.getProviderCode());
|
||||
params.put("username", memberInfoRequestDTO.getAccounts());
|
||||
String key = this.getKey(params, memberInfoRequestDTO);
|
||||
params.put("signature", key);
|
||||
|
|
@ -189,11 +174,13 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
@Override
|
||||
public String loginWithoutRedirect(GamesLogin gamesLogin) {
|
||||
log.info("GamesPGXServiceImpl [loginWithoutRedirect] 请求参数 {}", gamesLogin);
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(gamesLogin.getAgentId());
|
||||
// GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(gamesLogin.getAgentId());
|
||||
KeyInfo keyInfo = gamesLogin.getKeyInfo();
|
||||
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("operatorcode", gamesLogin.getAgentId());
|
||||
params.put("password", gameSecretKey.getPassword());
|
||||
params.put("providercode", gameSecretKey.getProviderCode());
|
||||
params.put("password", keyInfo.getPassword());
|
||||
params.put("providercode", keyInfo.getProviderCode());
|
||||
params.put("type", gamesLogin.getGameType());
|
||||
params.put("username", gamesLogin.getAccount());
|
||||
String key = this.getKey(params, gamesLogin);
|
||||
|
|
@ -226,10 +213,11 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
return CacheConstants.PGX_GAMES;
|
||||
}
|
||||
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(gamesBaseRequestDTO.getAgentId());
|
||||
// GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(gamesBaseRequestDTO.getAgentId());
|
||||
KeyInfo keyInfo = gamesBaseRequestDTO.getKeyInfo();
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
params.put("operatorcode", gamesBaseRequestDTO.getAgentId());
|
||||
params.put("providercode", gameSecretKey.getProviderCode());
|
||||
params.put("providercode", keyInfo.getProviderCode());
|
||||
String key = this.getKey(params, gamesBaseRequestDTO);
|
||||
//没有中文
|
||||
params.put("html5", 1);
|
||||
|
|
@ -242,7 +230,7 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
|
||||
List<PGXGameListResponse.Game> gameLists = JSON.parseArray(gameList.getGamelist(), PGXGameListResponse.Game.class);
|
||||
for (PGXGameListResponse.Game gamesDataDTO : gameLists) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
/* GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(GPXGameType.SL.getSystemCode())
|
||||
.platformCode(GamePlatforms.PGX.getInfo())
|
||||
.build();
|
||||
|
|
@ -255,25 +243,33 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = GPXGameType.findSystemByCode(gamesDataDTO.getGameCode());
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.gameCode(gamesDataDTO.getGameId())
|
||||
.platformCode(GamePlatforms.PGX.getCode())
|
||||
.platformType(platformType)
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
//不存在这个游戏
|
||||
if (CollectionUtils.isEmpty(games)) {
|
||||
game.setGameSourceType(GPXGameType.SL.getCode());
|
||||
game.setFreespin(Boolean.FALSE);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.PGX.getCode()) + 1);
|
||||
game.setGameName(gamesDataDTO.getGameName());
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
game.setPlatformCode(GamePlatforms.PGX.getCode());
|
||||
game.setPlatformType(platformType);
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getGameName(), "en-US"));
|
||||
game.setNameInfo(nameInfos);
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
gamesDataDTO.setSystemGameId(game.getId());
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
/*List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
|
|
@ -281,7 +277,7 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
.langCode("en-US")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -307,11 +303,11 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesPGXServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.PGX.getInfo())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.PGX.getInfo())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .currency(exchangeTransferMoneyRequestDTO.getCurrency())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = gameExchangeMoneyService.getTransactionId(GamePlatforms.PGX.getInfo(), 17);
|
||||
|
|
@ -323,7 +319,7 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
);
|
||||
Assert.isTrue(CollectionUtils.isEmpty(gameExchangeMonies), "订单号重复");
|
||||
|
||||
GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(exchangeTransferMoneyRequestDTO.getAgentId());
|
||||
// GameSecretKey gameSecretKey = gameSecretKeyService.selectGameSecretKeyByCode(exchangeTransferMoneyRequestDTO.getAgentId());
|
||||
|
||||
//获取下一个自增id
|
||||
GameExchangeMoney exchangeMoney = GameExchangeMoney
|
||||
|
|
@ -333,7 +329,7 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.PGX.getInfo())
|
||||
|
|
@ -362,11 +358,12 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
KeyInfo keyInfo = exchangeTransferMoneyRequestDTO.getKeyInfo();
|
||||
Map<String, Object> paramsMap = new LinkedHashMap<>();
|
||||
paramsMap.put("amount", amount);
|
||||
paramsMap.put("operatorcode", exchangeTransferMoneyRequestDTO.getAgentId());
|
||||
paramsMap.put("password", gameSecretKey.getPassword());
|
||||
paramsMap.put("providercode", gameSecretKey.getProviderCode());
|
||||
paramsMap.put("password", keyInfo.getPassword());
|
||||
paramsMap.put("providercode", keyInfo.getProviderCode());
|
||||
paramsMap.put("referenceid", transactionId);
|
||||
paramsMap.put("type", type);
|
||||
paramsMap.put("username", exchangeTransferMoneyRequestDTO.getAccount());
|
||||
|
|
@ -392,8 +389,8 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO();
|
||||
exchangeTransferStatusRequestDTO.setAccount(member.getGameAccount());
|
||||
exchangeTransferStatusRequestDTO.setOrderId(exchangeMoney.getTransactionId());
|
||||
exchangeTransferStatusRequestDTO.setAgentId(gameSecretKey.getCode());
|
||||
exchangeTransferStatusRequestDTO.setAgentKey(gameSecretKey.getKey());
|
||||
exchangeTransferStatusRequestDTO.setAgentId(keyInfo.getCode());
|
||||
exchangeTransferStatusRequestDTO.setAgentKey(keyInfo.getKey());
|
||||
this.exchangeTransferStatus(exchangeTransferStatusRequestDTO);
|
||||
} else {
|
||||
log.error("GamesFCServiceImpl [exchangeTransferByAgentId] 金额转移失败,错误代码{}", errorResponse.getErrCode());
|
||||
|
|
@ -576,13 +573,17 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param dataBean 数据bean
|
||||
*/
|
||||
private void batchInsert(List<PGXBetHistoryResponse.Result> dataBean, GamesBaseRequestDTO gamesBaseRequestDTO) {
|
||||
private void batchInsert(List<PGXBetHistoryResponse.Result> dataBean, BetRecordByTimeDTO gamesBaseRequestDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
|
||||
//数据转化
|
||||
for (PGXBetHistoryResponse.Result bean : dataBean) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().agentId(gamesBaseRequestDTO.getAgentId()).data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.currencyCode(gamesBaseRequestDTO.getCurrency())
|
||||
.systemCurrencyCode(gamesBaseRequestDTO.getSystemCurrency())
|
||||
.agentId(gamesBaseRequestDTO.getAgentId())
|
||||
.data(bean).build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -591,7 +592,7 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,GamePlatforms.PGX.getInfo());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.PGX.getInfo());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
@ -622,10 +623,10 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
//转化类
|
||||
PGXBetHistoryResponse.Result resultBean = (PGXBetHistoryResponse.Result) gamesDataBuildDTO.getData();
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.PGX.getInfo())
|
||||
.code(gamesDataBuildDTO.getAgentId())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.PGX.getInfo())
|
||||
// .code(gamesDataBuildDTO.getAgentId())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getMember());
|
||||
if (ObjectUtils.isEmpty(member)) {
|
||||
|
|
@ -651,17 +652,17 @@ public class GamesPGXServiceImpl implements IGamesService {
|
|||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(/*currencyDTO.getSystemCurrency()*/gamesDataBuildDTO.getSystemCurrencyCode())
|
||||
.memberId(member.getId())
|
||||
.gameCode(resultBean.getGameId())
|
||||
.gameType(GPXGameType.SL.getSystemCode())
|
||||
.platformCode(GamePlatforms.PGX.getInfo())
|
||||
.platformCode(GamePlatforms.PGX.getCode())
|
||||
.gameId(gamesDataDTO.getSystemGameId())
|
||||
.gameName(gamesDataDTO.getGameName())
|
||||
.gameStatus(gameStatus)
|
||||
.gameStatusType(1)
|
||||
.betContent(resultBean.getBetDetail())
|
||||
.gameCurrencyCode(currencyDTO.getCurrency())
|
||||
.gameCurrencyCode(/*currencyDTO.getCurrency()*/gamesDataBuildDTO.getCurrencyCode())
|
||||
.account(resultBean.getMember())
|
||||
.wagersId(String.valueOf(resultBean.getId()))
|
||||
.wagersTime(resultBean.getStartTime().getTime())
|
||||
|
|
|
|||
|
|
@ -30,13 +30,6 @@ public class BetRecordByTimeDTO extends GamesBaseRequestDTO {
|
|||
* 游戏id
|
||||
*/
|
||||
private Integer gameId;
|
||||
/**
|
||||
* 指定平台
|
||||
*/
|
||||
private String gamePlatform;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
package com.ff.game.api.request;
|
||||
|
||||
import com.ff.game.domain.KeyInfo;
|
||||
import com.ff.game.domain.Platform;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
|
@ -36,12 +37,15 @@ public class GamesBaseRequestDTO implements Serializable {
|
|||
private String query;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 货币
|
||||
*/
|
||||
private String currency;
|
||||
|
||||
private Platform vendor;
|
||||
|
||||
private KeyInfo keyInfo;
|
||||
|
||||
private String systemCurrency;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ff.game.api.request;
|
||||
|
||||
import com.ff.game.domain.Platform;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
|
@ -39,5 +40,7 @@ public class GamesDataBuildDTO
|
|||
*/
|
||||
private String agentId;
|
||||
|
||||
private Platform platform;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.sa.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -20,12 +20,14 @@ import javax.annotation.Resource;
|
|||
public class MySAAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
private IPlatformService platformService;
|
||||
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.SA_API_BASE_URL);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"api");
|
||||
// String apiBaseUrl = configService.selectConfigByKey(Constants.SA_API_BASE_URL);
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.SA.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "api");
|
||||
}
|
||||
}
|
||||
|
|
@ -5,23 +5,20 @@ import cn.hutool.core.util.NumberUtil;
|
|||
import com.ff.base.constant.CacheConstants;
|
||||
import com.ff.base.constant.ConfigConstants;
|
||||
import com.ff.base.constant.Constants;
|
||||
import com.ff.base.core.redis.RedisCache;
|
||||
import com.ff.base.enums.*;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.utils.*;
|
||||
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.request.*;
|
||||
import com.ff.game.api.sa.client.SAClient;
|
||||
import com.ff.game.api.sa.dto.*;
|
||||
import com.ff.game.api.xk.dto.*;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.game.service.IGameBettingDetailsService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -33,8 +30,10 @@ import org.springframework.util.ObjectUtils;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
|
@ -52,17 +51,9 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
|
@ -70,14 +61,6 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private SAClient SAClient;
|
||||
|
||||
|
|
@ -88,9 +71,6 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
/**
|
||||
* 游戏id
|
||||
*/
|
||||
|
|
@ -241,9 +221,9 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
@Override
|
||||
public String getGameList(GamesBaseRequestDTO gamesBaseRequestDTO) {
|
||||
GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(PLATFORM_ID);
|
||||
// GamePlatform gamePlatform = gamePlatformService.selectGamePlatformById(PLATFORM_ID);
|
||||
//没有此平台就新增一个平台
|
||||
if (ObjectUtils.isEmpty(gamePlatform)) {
|
||||
/*if (ObjectUtils.isEmpty(gamePlatform)) {
|
||||
gamePlatform = new GamePlatform();
|
||||
gamePlatform.setId(PLATFORM_ID);
|
||||
gamePlatform.setPlatformCode(GamePlatforms.SA.getInfo());
|
||||
|
|
@ -252,30 +232,36 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
gamePlatform.setSortNo(gamePlatformService.selectMaxSortNo() + 1);
|
||||
gamePlatform.setCreateBy(Constants.SYSTEM);
|
||||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
}
|
||||
}*/
|
||||
Game game = gameService.selectGameById(GAME_ID);
|
||||
Integer platformType = PlatformType.CARD_GAME.getCode();
|
||||
//不存在这个游戏
|
||||
if (ObjectUtils.isEmpty(game)) {
|
||||
game = new Game();
|
||||
game.setId(GAME_ID);
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setPlatformId(gamePlatform.getId());
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.SA.getCode()) + 1);
|
||||
//game.setPlatformId(gamePlatform.getId());
|
||||
game.setPlatformCode(GamePlatforms.SA.getCode());
|
||||
game.setPlatformType(platformType);
|
||||
game.setGameCode("1");
|
||||
game.setGameSourceType(String.valueOf(1));
|
||||
game.setGameName("真人棋牌");
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo("真人棋牌", "zh-CN"));
|
||||
game.setNameInfo(nameInfos);
|
||||
gameService.insertGame(game);
|
||||
}
|
||||
GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID);
|
||||
if (ObjectUtils.isEmpty(gameName)) {
|
||||
// GameName gameName = gameNameService.selectGameNameById(GAME_NAME_ID);
|
||||
/*if (ObjectUtils.isEmpty(gameName)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.id(GAME_NAME_ID)
|
||||
.id(GAME_NAME_ID)
|
||||
.gameId(game.getId())
|
||||
.gameName(game.getGameName())
|
||||
.langCode("zh-CN")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
}*/
|
||||
return CacheConstants.SA_GAMES;
|
||||
}
|
||||
|
||||
|
|
@ -289,10 +275,10 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesSAServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.SA.getInfo())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.SA.getInfo())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
|
||||
|
|
@ -318,7 +304,7 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.SA.getInfo())
|
||||
|
|
@ -355,7 +341,7 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
params.put("Username", exchangeTransferMoneyRequestDTO.getAccount());
|
||||
params.put("OrderId", exchangeMoney.getTransactionId());
|
||||
params.put("CreditAmount", exchangeTransferMoneyRequestDTO.getAmount().stripTrailingZeros().toPlainString());
|
||||
params.put("CurrencyType", currencyDTO.getCurrency());
|
||||
params.put("CurrencyType", exchangeTransferMoneyRequestDTO.getCurrency());
|
||||
String query = JsonUtil.mapToQueryString(params);
|
||||
exchangeTransferMoneyRequestDTO.setQuery(query);
|
||||
String key = this.getKey(exchangeTransferMoneyRequestDTO, "CreditBalanceDV");
|
||||
|
|
@ -424,7 +410,7 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
//判断是否获取成功
|
||||
if (this.getIsSuccess(errorCode)) {
|
||||
//数据组装
|
||||
this.batchInsert(saGetAllBetDetailsResponse);
|
||||
this.batchInsert(saGetAllBetDetailsResponse, betRecordByTimeDTO);
|
||||
|
||||
return Boolean.TRUE;
|
||||
} else {
|
||||
|
|
@ -541,14 +527,17 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
*
|
||||
* @param saGetAllBetDetailsResponse sa获取所有投注详细信息响应
|
||||
*/
|
||||
private void batchInsert(SAGetAllBetDetailsResponse saGetAllBetDetailsResponse) {
|
||||
private void batchInsert(SAGetAllBetDetailsResponse saGetAllBetDetailsResponse, BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
List<SAGetAllBetDetailsResponse.BetDetail> result = saGetAllBetDetailsResponse.getBetDetailList();
|
||||
//数据转化
|
||||
for (SAGetAllBetDetailsResponse.BetDetail bean : result) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.data(bean)
|
||||
.build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -557,7 +546,7 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,GamePlatforms.SA.getInfo());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.SA.getInfo());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
@ -580,10 +569,10 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
//转化类
|
||||
SAGetAllBetDetailsResponse.BetDetail resultBean = (SAGetAllBetDetailsResponse.BetDetail) gamesDataBuildDTO.getData();
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.SA.getInfo())
|
||||
.currency(resultBean.getCurrency())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.SA.getInfo())
|
||||
// .currency(resultBean.getCurrency())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getUsername());
|
||||
if (ObjectUtils.isEmpty(member)) {
|
||||
|
|
@ -602,11 +591,12 @@ public class GamesSAServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
String systemCurrency = gamesDataBuildDTO.getPlatform().getOurCurrency(resultBean.getCurrency());
|
||||
//数据构造
|
||||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(systemCurrency)
|
||||
.memberId(member.getId())
|
||||
.gameCode(resultBean.getGameID())
|
||||
.gameType(PlatformType.CARD_GAME.getCode())
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.ff.game.api.xk.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.system.service.ISysConfigService;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.game.service.IPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -20,12 +20,13 @@ import javax.annotation.Resource;
|
|||
public class MyXKAddressSource implements AddressSource {
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
private IPlatformService platformService;
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(Constants.XK_API_BASE_URL);
|
||||
return new ForestAddress("https",apiBaseUrl, 443,"api");
|
||||
// String apiBaseUrl = configService.selectConfigByKey(Constants.XK_API_BASE_URL);
|
||||
String apiBaseUrl = platformService.get(GamePlatforms.XK.getCode())
|
||||
.getUrlInfo().getUrl();
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "api");
|
||||
}
|
||||
}
|
||||
|
|
@ -8,10 +8,8 @@ import com.ff.base.core.redis.RedisCache;
|
|||
import com.ff.base.enums.*;
|
||||
import com.ff.base.exception.base.ApiException;
|
||||
import com.ff.base.exception.base.BaseException;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.JsonUtil;
|
||||
import com.ff.base.utils.MessageUtils;
|
||||
import com.ff.base.utils.sign.Md5Utils;
|
||||
import com.ff.base.utils.uuid.IdUtils;
|
||||
import com.ff.config.KeyConfig;
|
||||
|
|
@ -20,8 +18,9 @@ import com.ff.game.api.request.*;
|
|||
import com.ff.game.api.xk.client.XKClient;
|
||||
import com.ff.game.api.xk.dto.*;
|
||||
import com.ff.game.domain.*;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.service.*;
|
||||
import com.ff.game.service.IGameBettingDetailsService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -48,49 +47,27 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
public class GamesXKServiceImpl implements IGamesService {
|
||||
|
||||
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private IGameFreeRecordService gameFreeRecordService;
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private XKClient xkClient;
|
||||
|
||||
|
||||
@Resource
|
||||
private KeyConfig keyConfig;
|
||||
|
||||
@Resource
|
||||
private IGameBettingDetailsService gameBettingDetailsService;
|
||||
|
||||
@Resource
|
||||
private IGameNameService gameNameService;
|
||||
|
||||
|
||||
/**
|
||||
* 获得就是成功
|
||||
|
|
@ -210,7 +187,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
params.put("key", key);
|
||||
params.put("disableFullScreen", gamesLogin.getDisableFullScreen());
|
||||
params.put("homeUrl", gamesLogin.getHomeUrl());
|
||||
params.put("platform", gamesLogin.getPlatform());
|
||||
params.put("platform", gamesLogin.getVendor());
|
||||
XKLoginWithoutRedirectResponseDTO xkLoginWithoutRedirectResponseDTO = xkClient.loginWithoutRedirect(params);
|
||||
//判断是否获取成功
|
||||
if (this.getIsSuccess(xkLoginWithoutRedirectResponseDTO.getCode())) {
|
||||
|
|
@ -249,7 +226,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
if (this.getIsSuccess(xkGamesDTO.getCode())) {
|
||||
|
||||
for (XKGamesDTO.DataBean gamesDataDTO : xkGamesDTO.getData()) {
|
||||
GamePlatform gamePlatform = GamePlatform.builder()
|
||||
/*GamePlatform gamePlatform = GamePlatform.builder()
|
||||
.platformType(XKGameType.findSystemByCode(gamesDataDTO.getGameCategoryId()))
|
||||
.platformCode(GamePlatforms.XK.getCode())
|
||||
.build();
|
||||
|
|
@ -262,9 +239,12 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
gamePlatformService.insertGamePlatform(gamePlatform);
|
||||
} else {
|
||||
gamePlatform = gamePlatforms.get(0);
|
||||
}
|
||||
}*/
|
||||
Integer platformType = XKGameType.findSystemByCode(gamesDataDTO.getGameCategoryId());
|
||||
Game game = Game.builder()
|
||||
.platformId(gamePlatform.getId())
|
||||
//.platformId(gamePlatform.getId())
|
||||
.platformCode(GamePlatforms.XK.getCode())
|
||||
.platformType(platformType)
|
||||
.gameCode(String.valueOf(gamesDataDTO.getGameId()))
|
||||
.build();
|
||||
List<Game> games = gameService.selectGameList(game);
|
||||
|
|
@ -272,24 +252,30 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
if (CollectionUtils.isEmpty(games)) {
|
||||
game.setGameSourceType(String.valueOf(gamesDataDTO.getGameCategoryId()));
|
||||
game.setFreespin(gamesDataDTO.isFreeSpin());
|
||||
game.setSortNo(gameService.selectMaxSortNoByPlatformId(gamePlatform.getId()) + 1);
|
||||
game.setSortNo(gameService.selectMaxSortNo(platformType, GamePlatforms.XK.getCode()) + 1);
|
||||
game.setPlatformCode(GamePlatforms.XK.getCode());
|
||||
game.setPlatformType(platformType);
|
||||
game.setGameName(gamesDataDTO.getName());
|
||||
game.setCreateBy(Constants.SYSTEM);
|
||||
|
||||
List<NameInfo> nameInfos = new ArrayList<>();
|
||||
nameInfos.add(new NameInfo(gamesDataDTO.getName(), "zh-CN"));
|
||||
game.setNameInfo(nameInfos);
|
||||
|
||||
gameService.insertGame(game);
|
||||
} else {
|
||||
game = games.get(0);
|
||||
}
|
||||
gamesDataDTO.setSystemGameId(game.getId());
|
||||
List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)){
|
||||
/*List<GameName> gameNames = gameNameService.selectGameNameList(GameName.builder().gameId(game.getId()).gameName(game.getGameName()).build());
|
||||
if (CollectionUtils.isEmpty(gameNames)) {
|
||||
gameNameService.insertGameName(GameName.builder()
|
||||
.gameId(game.getId())
|
||||
.gameName(game.getGameName())
|
||||
.langCode("zh-CN")
|
||||
.createBy(Constants.SYSTEM)
|
||||
.build());
|
||||
}
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
redisCache.deleteObject(CacheConstants.XK_GAMES);
|
||||
|
|
@ -313,10 +299,10 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
@Transactional
|
||||
public Long exchangeTransferByAgentId(ExchangeTransferMoneyRequestDTO exchangeTransferMoneyRequestDTO) {
|
||||
log.info("GamesXKServiceImpl [exchangeTransferByAgentId] 请求参数 {}", exchangeTransferMoneyRequestDTO);
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.XK.getInfo())
|
||||
.code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.XK.getInfo())
|
||||
// .code(exchangeTransferMoneyRequestDTO.getAgentId())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(exchangeTransferMoneyRequestDTO.getAccount());
|
||||
String transactionId = GamePlatforms.XK.getCode() + IdUtils.simpleUUID();
|
||||
|
|
@ -336,7 +322,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
.quota(exchangeTransferMoneyRequestDTO.getQuota())
|
||||
.balance(exchangeTransferMoneyRequestDTO.getAmount())
|
||||
.exchangeType(exchangeTransferMoneyRequestDTO.getTransferType())
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(exchangeTransferMoneyRequestDTO.getSystemCurrency())
|
||||
.memberId(member.getId())
|
||||
.transactionId(transactionId)
|
||||
.platformCode(GamePlatforms.XK.getCode())
|
||||
|
|
@ -396,7 +382,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean getBetRecordByTime(BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
// List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
//请求参数
|
||||
log.info("GamesXKServiceImpl [getBetRecordByTime] 请求参数 {}", betRecordByTimeDTO);
|
||||
Map<String, Object> params = new LinkedHashMap<>();
|
||||
|
|
@ -415,7 +401,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
if (this.getIsSuccess(xkBetRecordResponseDTO.getCode())) {
|
||||
//数据组装
|
||||
XKBetRecordResponseDTO.DataBean dataBean = xkBetRecordResponseDTO.getData();
|
||||
this.batchInsert(xkBetRecordResponseDTO);
|
||||
this.batchInsert(xkBetRecordResponseDTO, betRecordByTimeDTO);
|
||||
|
||||
//获取下一页数据
|
||||
while (!Objects.equals(dataBean.getCurrentPage(), dataBean.getTotalPages()) && dataBean.getTotalPages() > 0) {
|
||||
|
|
@ -433,7 +419,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
params.put("key", key);
|
||||
xkBetRecordResponseDTO = xkClient.getBetRecordByTime(params);
|
||||
dataBean = xkBetRecordResponseDTO.getData();
|
||||
this.batchInsert(xkBetRecordResponseDTO);
|
||||
this.batchInsert(xkBetRecordResponseDTO, betRecordByTimeDTO);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -464,7 +450,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean createFreeSpin(CreateFreeSpinRequestDTO createFreeSpinRequest) {
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -475,7 +461,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public GetGameDetailResponseDTO getGameDetail(GetGameDetailRequestDTO getGameDetailRequestDTO) {
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -511,7 +497,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean kickMemberAll(KickMemberAllDTO kickMemberAllDTO) {
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -522,7 +508,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public List<GameFreeRecord> getFreeSpinDashflow(GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO) {
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -533,8 +519,9 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean cancelFreeSpin(CancelFreeSpinRequestDTO cancelFreeSpinRequestDTO) {
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
throw new ApiException(ErrorCode.PLATFORM_NOT_METHODS.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* 游戏演示登录
|
||||
*
|
||||
|
|
@ -547,20 +534,24 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
*
|
||||
* @param xkBetRecordResponseDTO xk下注记录响应dto
|
||||
*/
|
||||
private void batchInsert(XKBetRecordResponseDTO xkBetRecordResponseDTO) {
|
||||
private void batchInsert(XKBetRecordResponseDTO xkBetRecordResponseDTO, BetRecordByTimeDTO betRecordByTimeDTO) {
|
||||
List<GameBettingDetails> gameBettingDetails = new ArrayList<>();
|
||||
List<String> wagersIds = new ArrayList<>();
|
||||
//数据组装
|
||||
XKBetRecordResponseDTO.DataBean dataBean = xkBetRecordResponseDTO.getData();
|
||||
//数据转化
|
||||
for (XKBetRecordResponseDTO.DataBean.ResultBean bean : dataBean.getResult()) {
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build());
|
||||
GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder()
|
||||
.platform(betRecordByTimeDTO.getVendor())
|
||||
.systemCurrencyCode(betRecordByTimeDTO.getSystemCurrency())
|
||||
.currencyCode(betRecordByTimeDTO.getCurrency())
|
||||
.data(bean)
|
||||
.build());
|
||||
if (!ObjectUtils.isEmpty(bettingDetails)) {
|
||||
bettingDetails.setId(IdUtil.getSnowflakeNextId());
|
||||
gameBettingDetails.add(bettingDetails);
|
||||
|
|
@ -569,7 +560,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(gameBettingDetails)) {
|
||||
//查询重复数据id
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds,GamePlatforms.XK.getInfo());
|
||||
List<String> removeWagersIds = gameBettingDetailsService.selectGameBettingDetailsByWagersId(wagersIds, GamePlatforms.XK.getInfo());
|
||||
//用steam流清除list中与wagersIds集合相同的数据
|
||||
gameBettingDetails = gameBettingDetails.stream()
|
||||
.filter(detail -> !removeWagersIds.contains(detail.getWagersId()))
|
||||
|
|
@ -592,10 +583,10 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
//转化类
|
||||
XKBetRecordResponseDTO.DataBean.ResultBean resultBean = (XKBetRecordResponseDTO.DataBean.ResultBean) gamesDataBuildDTO.getData();
|
||||
|
||||
GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(GamePlatforms.XK.getInfo())
|
||||
.code(resultBean.getAgentId())
|
||||
.build());
|
||||
// GameSecretKeyCurrency currencyDTO = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(GamePlatforms.XK.getInfo())
|
||||
// .code(resultBean.getAgentId())
|
||||
// .build());
|
||||
|
||||
Member member = memberService.selectMemberByGameAccount(resultBean.getAccount());
|
||||
if (ObjectUtils.isEmpty(member)) {
|
||||
|
|
@ -615,7 +606,7 @@ public class GamesXKServiceImpl implements IGamesService {
|
|||
GameBettingDetails gameBettingDetails = GameBettingDetails.builder()
|
||||
.tenantKey(member.getTenantKey())
|
||||
//保存我们的币种id
|
||||
.currencyCode(currencyDTO.getSystemCurrency())
|
||||
.currencyCode(gamesDataBuildDTO.getSystemCurrencyCode())
|
||||
.memberId(member.getId())
|
||||
.gameCode(resultBean.getGameId())
|
||||
.gameType(XKGameType.findSystemByCode(resultBean.getGameCategoryId()))
|
||||
|
|
|
|||
|
|
@ -1,27 +1,11 @@
|
|||
package com.ff.game.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
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.game.domain.GamePlatform;
|
||||
import com.ff.game.service.IGamePlatformService;
|
||||
import com.ff.base.utils.poi.ExcelUtil;
|
||||
import com.ff.base.core.page.TableDataInfo;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 平台管理Controller
|
||||
|
|
@ -32,19 +16,7 @@ import com.ff.base.core.page.TableDataInfo;
|
|||
@RestController
|
||||
@RequestMapping("/game/platform")
|
||||
public class GamePlatformController extends BaseController {
|
||||
@Autowired
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
/**
|
||||
* 查询平台管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:platform:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(GamePlatform gamePlatform) {
|
||||
startPage();
|
||||
List<GamePlatform> list = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择
|
||||
|
|
@ -56,54 +28,4 @@ public class GamePlatformController extends BaseController {
|
|||
return AjaxResult.success(GamePlatforms.getCodes());
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出平台管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:platform:export')")
|
||||
@Log(title = "平台管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, GamePlatform gamePlatform) {
|
||||
List<GamePlatform> list = gamePlatformService.selectGamePlatformList(gamePlatform);
|
||||
ExcelUtil<GamePlatform> util = new ExcelUtil<GamePlatform>(GamePlatform.class);
|
||||
util.exportExcel(response, list, "平台管理数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取平台管理详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:platform:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return success(gamePlatformService.selectGamePlatformById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增平台管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:platform:add')")
|
||||
@Log(title = "平台管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody GamePlatform gamePlatform) {
|
||||
return toAjax(gamePlatformService.insertGamePlatform(gamePlatform));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改平台管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:platform:edit')")
|
||||
@Log(title = "平台管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody GamePlatform gamePlatform) {
|
||||
return toAjax(gamePlatformService.updateGamePlatform(gamePlatform));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除平台管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:platform:remove')")
|
||||
@Log(title = "平台管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(gamePlatformService.deleteGamePlatformByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,104 +0,0 @@
|
|||
package com.ff.game.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.game.domain.GameSecretKey;
|
||||
import com.ff.game.service.IGameSecretKeyService;
|
||||
import com.ff.base.utils.poi.ExcelUtil;
|
||||
import com.ff.base.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 游戏平台密钥管理Controller
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-02-10
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/game/key")
|
||||
public class GameSecretKeyController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
/**
|
||||
* 查询游戏平台密钥管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:key:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(GameSecretKey gameSecretKey)
|
||||
{
|
||||
startPage();
|
||||
List<GameSecretKey> list = gameSecretKeyService.selectGameSecretKeyList(gameSecretKey);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出游戏平台密钥管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:key:export')")
|
||||
@Log(title = "游戏平台密钥管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, GameSecretKey gameSecretKey)
|
||||
{
|
||||
List<GameSecretKey> list = gameSecretKeyService.selectGameSecretKeyList(gameSecretKey);
|
||||
ExcelUtil<GameSecretKey> util = new ExcelUtil<GameSecretKey>(GameSecretKey.class);
|
||||
util.exportExcel(response, list, "游戏平台密钥管理数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取游戏平台密钥管理详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:key:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(gameSecretKeyService.selectGameSecretKeyById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增游戏平台密钥管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:key:add')")
|
||||
@Log(title = "游戏平台密钥管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody GameSecretKey gameSecretKey)
|
||||
{
|
||||
return toAjax(gameSecretKeyService.insertGameSecretKey(gameSecretKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改游戏平台密钥管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:key:edit')")
|
||||
@Log(title = "游戏平台密钥管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody GameSecretKey gameSecretKey)
|
||||
{
|
||||
return toAjax(gameSecretKeyService.updateGameSecretKey(gameSecretKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除游戏平台密钥管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('game:key:remove')")
|
||||
@Log(title = "游戏平台密钥管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(gameSecretKeyService.deleteGameSecretKeyByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* key:我们的币种
|
||||
*
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class CurrencyInfo extends HashMap<String, String> implements Serializable {
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class ExtInfo implements Serializable {
|
||||
|
||||
// 币种信息,key为其它平台的币种id,value为我们自己的币种
|
||||
private Map<String, String> currency;
|
||||
|
||||
public String getOurCurrency(String currencyId) {
|
||||
return currency == null ? null : currency.get(currencyId);
|
||||
}
|
||||
}
|
||||
|
|
@ -5,11 +5,12 @@ 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.util.List;
|
||||
|
||||
/**
|
||||
* 平台子游戏管理对象 ff_game
|
||||
*
|
||||
|
|
@ -20,24 +21,31 @@ import lombok.experimental.SuperBuilder;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class Game extends BaseEntity
|
||||
{
|
||||
public class Game extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键id */
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 排序 */
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@Excel(name = "排序")
|
||||
private Integer sortNo;
|
||||
|
||||
/** 游戏平台id */
|
||||
/**
|
||||
* 游戏平台id
|
||||
*/
|
||||
@Excel(name = "游戏平台id")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long platformId;
|
||||
|
||||
/** 游戏第三方id */
|
||||
/**
|
||||
* 游戏第三方id
|
||||
*/
|
||||
@Excel(name = "游戏第三方id")
|
||||
private String gameCode;
|
||||
|
||||
|
|
@ -46,27 +54,45 @@ public class Game extends BaseEntity
|
|||
*/
|
||||
private Integer ingress;
|
||||
|
||||
/** 第三方来源分类 */
|
||||
/**
|
||||
* 第三方来源分类
|
||||
*/
|
||||
@Excel(name = "第三方来源分类")
|
||||
private String gameSourceType;
|
||||
|
||||
/** 游戏名称 */
|
||||
/**
|
||||
* 游戏名称
|
||||
*/
|
||||
@Excel(name = "游戏名称")
|
||||
private String gameName;
|
||||
|
||||
/** 是否支持免费游戏 1 支持 0 不支持 */
|
||||
/**
|
||||
* 是否支持免费游戏 1 支持 0 不支持
|
||||
*/
|
||||
@Excel(name = "是否支持免费游戏 1 支持 0 不支持")
|
||||
private Boolean freespin;
|
||||
|
||||
/** 是否支持试玩 0关闭 1开启 */
|
||||
/**
|
||||
* 是否支持试玩 0关闭 1开启
|
||||
*/
|
||||
@Excel(name = "是否支持试玩 0关闭 1开启")
|
||||
private Boolean demoStatus;
|
||||
|
||||
/** 维护开关 维护状态 */
|
||||
/**
|
||||
* 维护开关 维护状态
|
||||
*/
|
||||
@Excel(name = "维护开关 ")
|
||||
private Boolean stopStatus;
|
||||
|
||||
/**
|
||||
* 平台code
|
||||
*/
|
||||
private String platformCode;
|
||||
|
||||
/**
|
||||
* 平台类型
|
||||
*/
|
||||
private Integer platformType;
|
||||
|
||||
|
||||
private List<NameInfo> nameInfo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
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;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 平台子游戏名称管理对象 ff_game_name
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
public class GameName extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 游戏id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Excel(name = "游戏id", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Long gameId;
|
||||
|
||||
/**
|
||||
* 游戏名称
|
||||
*/
|
||||
@Excel(name = "游戏名称")
|
||||
private String gameName;
|
||||
|
||||
/**
|
||||
* 语言代码
|
||||
*/
|
||||
@Excel(name = "语言代码")
|
||||
private String langCode;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* 平台管理对象 ff_game_platform
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-02-10
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class GamePlatform extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键id */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 排序 */
|
||||
@Excel(name = "排序")
|
||||
private Integer sortNo;
|
||||
|
||||
/** 平台编码 */
|
||||
@Excel(name = "平台编码")
|
||||
private String platformCode;
|
||||
|
||||
/** 平台类型 ff_game_platform_type 字典 */
|
||||
@Excel(name = "平台类型 ff_game_platform_type 字典")
|
||||
private Integer platformType;
|
||||
|
||||
/** 平台名称 */
|
||||
@Excel(name = "平台名称")
|
||||
private String platformName;
|
||||
|
||||
/** 维护开关 维护状态 */
|
||||
@Excel(name = "维护开关 维护状态 ")
|
||||
private Boolean stopStatus;
|
||||
|
||||
/** 平台开关 平台开关状态 */
|
||||
@Excel(name = "平台开关 平台开关状态 ")
|
||||
private Boolean platformStatus;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import com.ff.base.annotation.Excel;
|
||||
import com.ff.base.core.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 游戏平台密钥管理对象 ff_game_secret_key
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
public class GameSecretKey extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** $column.columnComment */
|
||||
private Long id;
|
||||
|
||||
/** 平台 */
|
||||
@Excel(name = "平台")
|
||||
private String platform;
|
||||
|
||||
/**
|
||||
* 供应商号
|
||||
*/
|
||||
private String providerCode;
|
||||
|
||||
/**
|
||||
* 供应商号密码
|
||||
*/
|
||||
private String password;
|
||||
|
||||
/** 代码 */
|
||||
@Excel(name = "代码")
|
||||
private String code;
|
||||
|
||||
/** 密钥 */
|
||||
@Excel(name = "密钥")
|
||||
private String key;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* 游戏平台币种管理对象 ff_game_secret_key_currency
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class GameSecretKeyCurrency extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 平台
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Excel(name = "平台", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Long gameSecretKeyId;
|
||||
|
||||
/**
|
||||
* 货币id
|
||||
*/
|
||||
private String currencyId;
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
@Excel(name = "币种")
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 系统代码
|
||||
*/
|
||||
@Excel(name = "系统代码")
|
||||
private String systemCurrency;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
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;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 游戏平台语言管理对象 ff_game_secret_key_lang
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class GameSecretKeyLang extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** $column.columnComment */
|
||||
private Long id;
|
||||
|
||||
/** 平台 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Excel(name = "平台", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Long gameSecretKeyId;
|
||||
|
||||
/** 语言 */
|
||||
@Excel(name = "语言")
|
||||
private String lang;
|
||||
|
||||
/** 系统语种id */
|
||||
@Excel(name = "系统语种id")
|
||||
private String systemLangCode;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 其它字段按需加
|
||||
*
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class KeyInfo implements Serializable {
|
||||
|
||||
private String code;
|
||||
private String key;
|
||||
private String currency;
|
||||
private String password;
|
||||
private String providerCode;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
public class LangInfo extends HashMap<String, String> implements Serializable {
|
||||
|
||||
public String get(String lang) {
|
||||
return super.get(lang);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
public class NameInfo implements Serializable {
|
||||
private String name;
|
||||
private String lang;
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import com.ff.base.core.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class Platform extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sortNo;
|
||||
/**
|
||||
* 平台code
|
||||
*/
|
||||
private String platformCode;
|
||||
/**
|
||||
* 平台名称
|
||||
*/
|
||||
private String platformName;
|
||||
|
||||
/**
|
||||
* 状态:true:启用 false:停用
|
||||
*/
|
||||
private Boolean stopStatus;
|
||||
|
||||
private List<PlatformInfo> platformInfo;
|
||||
private List<KeyInfo> keyInfo;
|
||||
private LangInfo langInfo;
|
||||
private CurrencyInfo currencyInfo;
|
||||
private UrlInfo urlInfo;
|
||||
/**
|
||||
* 代理类型 0:代理单币种 1:代理多币种
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
private ExtInfo extInfo;
|
||||
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum Type {
|
||||
/**
|
||||
* 代理类型 0:代理单币种 1:代理多币种
|
||||
*/
|
||||
SINGLE(0, "代理单币种"),
|
||||
MULTI(1, "代理多币种");
|
||||
|
||||
private Integer code;
|
||||
private String name;
|
||||
|
||||
}
|
||||
|
||||
public boolean isMultiAgent() {
|
||||
return this.type == Type.MULTI.getCode();
|
||||
}
|
||||
|
||||
public String getOurCurrency(String currency) {
|
||||
Set<Map.Entry<String, String>> entrySet= currencyInfo.entrySet();
|
||||
for (Map.Entry<String, String> entry : entrySet) {
|
||||
if (entry.getValue().equals(currency)) {
|
||||
return entry.getKey();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class PlatformInfo implements Serializable {
|
||||
private String code;
|
||||
private String name;
|
||||
private int type;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.ff.game.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
@Data
|
||||
public class UrlInfo implements Serializable {
|
||||
|
||||
private String url;
|
||||
private String loginUrl;
|
||||
private String hallCode;
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
package com.ff.game.dto;
|
||||
|
||||
import com.ff.game.domain.GameName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class GameNameDTO extends GameName {
|
||||
/**
|
||||
* 平台代码
|
||||
*/
|
||||
private String platformCode;
|
||||
|
||||
/**
|
||||
* 默认名称
|
||||
*/
|
||||
private String defaultName;
|
||||
|
||||
/**
|
||||
* 游戏代码
|
||||
*/
|
||||
private String gameCode;
|
||||
}
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
package com.ff.game.dto;
|
||||
|
||||
import com.ff.game.domain.GameSecretKeyCurrency;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 游戏密钥货币dto
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025/03/13
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class GameSecretKeyCurrencyDTO extends GameSecretKeyCurrency {
|
||||
|
||||
/**
|
||||
* 平台
|
||||
*/
|
||||
private String platformCode;
|
||||
|
||||
|
||||
/**
|
||||
* 平台代码
|
||||
*/
|
||||
private List<String> platformCodes;
|
||||
|
||||
/**
|
||||
* API code
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 游戏密钥id
|
||||
*/
|
||||
private Long gameSecretKeyId;
|
||||
|
||||
/**
|
||||
* 密钥
|
||||
*/
|
||||
private String key;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package com.ff.game.dto;
|
||||
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏密钥dto
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025/03/12
|
||||
*/
|
||||
@Data
|
||||
public class GameSecretKeyDTO extends GameSecretKey {
|
||||
/**
|
||||
* 平台
|
||||
*/
|
||||
private List<String> platforms;
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
package com.ff.game.dto;
|
||||
|
||||
import com.ff.game.domain.GameSecretKeyLang;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 游戏密钥lang dto
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025/03/13
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class GameSecretKeyLangDTO extends GameSecretKeyLang {
|
||||
|
||||
/**
|
||||
* 平台
|
||||
*/
|
||||
private String platformCode;
|
||||
|
||||
/**
|
||||
* API code
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 游戏密钥id
|
||||
*/
|
||||
private Long gameSecretKeyId;
|
||||
|
||||
/**
|
||||
* 密钥
|
||||
*/
|
||||
private String key;
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* 平台子游戏管理Mapper接口
|
||||
|
|
@ -13,15 +14,14 @@ import com.ff.game.dto.GameDTO;
|
|||
* @author shi
|
||||
* @date 2025-02-10
|
||||
*/
|
||||
public interface GameMapper
|
||||
{
|
||||
public interface GameMapper {
|
||||
/**
|
||||
* 查询平台子游戏管理
|
||||
*
|
||||
* @param id 平台子游戏管理主键
|
||||
* @return 平台子游戏管理
|
||||
*/
|
||||
Game selectGameById(Long id);
|
||||
Game selectGameById(Long id);
|
||||
|
||||
/**
|
||||
* 查询平台子游戏管理列表
|
||||
|
|
@ -29,7 +29,7 @@ public interface GameMapper
|
|||
* @param game 平台子游戏管理
|
||||
* @return 平台子游戏管理集合
|
||||
*/
|
||||
List<Game> selectGameList(Game game);
|
||||
List<Game> selectGameList(Game game);
|
||||
|
||||
/**
|
||||
* 新增平台子游戏管理
|
||||
|
|
@ -37,7 +37,7 @@ public interface GameMapper
|
|||
* @param game 平台子游戏管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGame(Game game);
|
||||
int insertGame(Game game);
|
||||
|
||||
/**
|
||||
* 修改平台子游戏管理
|
||||
|
|
@ -45,7 +45,7 @@ public interface GameMapper
|
|||
* @param game 平台子游戏管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGame(Game game);
|
||||
int updateGame(Game game);
|
||||
|
||||
/**
|
||||
* 删除平台子游戏管理
|
||||
|
|
@ -53,7 +53,7 @@ public interface GameMapper
|
|||
* @param id 平台子游戏管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameById(Long id);
|
||||
int deleteGameById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除平台子游戏管理
|
||||
|
|
@ -61,17 +61,17 @@ public interface GameMapper
|
|||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameByIds(Long[] ids);
|
||||
int deleteGameByIds(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 按平台id选择最大排序号
|
||||
* 根据平台code与平台类型选择最大序号
|
||||
*
|
||||
* @param platformId 平台id
|
||||
* @return {@link Integer }
|
||||
* @param platformType
|
||||
* @param platformCode
|
||||
* @return
|
||||
*/
|
||||
Integer selectMaxSortNoByPlatformId(Long platformId);
|
||||
|
||||
Integer selectMaxSortNoBy(@Param("platformType") Integer platformType, @Param("platformCode") String platformCode);
|
||||
|
||||
/**
|
||||
* 选择游戏唯一列表
|
||||
|
|
@ -79,7 +79,7 @@ public interface GameMapper
|
|||
* @param gameUniqueDTO 游戏独有dto
|
||||
* @return {@link List }<{@link Game }>
|
||||
*/
|
||||
List<Game> selectGameUniqueList(GameUniqueDTO gameUniqueDTO);
|
||||
List<Game> selectGameUniqueList(GameUniqueDTO gameUniqueDTO);
|
||||
|
||||
/**
|
||||
* 选择游戏响应列表
|
||||
|
|
|
|||
|
|
@ -1,72 +0,0 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import com.ff.game.domain.GameName;
|
||||
import com.ff.game.dto.GameDTO;
|
||||
import com.ff.game.dto.GameNameDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 平台子游戏名称管理Mapper接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface GameNameMapper
|
||||
{
|
||||
/**
|
||||
* 查询平台子游戏名称管理
|
||||
*
|
||||
* @param id 平台子游戏名称管理主键
|
||||
* @return 平台子游戏名称管理
|
||||
*/
|
||||
GameName selectGameNameById(Long id);
|
||||
|
||||
/**
|
||||
* 查询平台子游戏名称管理列表
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 平台子游戏名称管理集合
|
||||
*/
|
||||
List<GameName> selectGameNameList(GameName gameName);
|
||||
|
||||
/**
|
||||
* 新增平台子游戏名称管理
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameName(GameName gameName);
|
||||
|
||||
/**
|
||||
* 修改平台子游戏名称管理
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameName(GameName gameName);
|
||||
|
||||
/**
|
||||
* 删除平台子游戏名称管理
|
||||
*
|
||||
* @param id 平台子游戏名称管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameNameById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除平台子游戏名称管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameNameByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 选择游戏名称数据列表
|
||||
*
|
||||
* @param gameNameDTO 游戏dto
|
||||
* @return {@link List }<{@link GameDTO }>
|
||||
*/
|
||||
List<GameDTO> selectGameNameDTOList(GameNameDTO gameNameDTO);
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ff.game.domain.GamePlatform;
|
||||
|
||||
/**
|
||||
* 平台管理Mapper接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-02-10
|
||||
*/
|
||||
public interface GamePlatformMapper
|
||||
{
|
||||
/**
|
||||
* 查询平台管理
|
||||
*
|
||||
* @param id 平台管理主键
|
||||
* @return 平台管理
|
||||
*/
|
||||
GamePlatform selectGamePlatformById(Long id);
|
||||
|
||||
/**
|
||||
* 查询平台管理列表
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 平台管理集合
|
||||
*/
|
||||
List<GamePlatform> selectGamePlatformList(GamePlatform gamePlatform);
|
||||
|
||||
/**
|
||||
* 新增平台管理
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGamePlatform(GamePlatform gamePlatform);
|
||||
|
||||
/**
|
||||
* 修改平台管理
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGamePlatform(GamePlatform gamePlatform);
|
||||
|
||||
/**
|
||||
* 删除平台管理
|
||||
*
|
||||
* @param id 平台管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGamePlatformById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除平台管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGamePlatformByIds(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 选择最大排序号
|
||||
*
|
||||
* @return {@link Integer }
|
||||
*/
|
||||
Integer selectMaxSortNo();
|
||||
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ff.game.domain.GameSecretKeyCurrency;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
|
||||
/**
|
||||
* 游戏平台币种管理Mapper接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface GameSecretKeyCurrencyMapper
|
||||
{
|
||||
/**
|
||||
* 查询游戏平台币种管理
|
||||
*
|
||||
* @param id 游戏平台币种管理主键
|
||||
* @return 游戏平台币种管理
|
||||
*/
|
||||
GameSecretKeyCurrency selectGameSecretKeyCurrencyById(Long id);
|
||||
|
||||
/**
|
||||
* 查询游戏平台币种管理列表
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 游戏平台币种管理集合
|
||||
*/
|
||||
List<GameSecretKeyCurrency> selectGameSecretKeyCurrencyList(GameSecretKeyCurrency gameSecretKeyCurrency);
|
||||
|
||||
/**
|
||||
* 新增游戏平台币种管理
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameSecretKeyCurrency(GameSecretKeyCurrency gameSecretKeyCurrency);
|
||||
|
||||
/**
|
||||
* 修改游戏平台币种管理
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameSecretKeyCurrency(GameSecretKeyCurrency gameSecretKeyCurrency);
|
||||
|
||||
/**
|
||||
* 删除游戏平台币种管理
|
||||
*
|
||||
* @param id 游戏平台币种管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyCurrencyById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台币种管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyCurrencyByIds(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 按游戏找到密钥货币dto
|
||||
*
|
||||
* @param gameSecretKeyCurrencyDTO 游戏密钥货币dto
|
||||
* @return {@link GameSecretKeyCurrencyDTO }
|
||||
*/
|
||||
GameSecretKeyCurrencyDTO findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO);
|
||||
|
||||
/**
|
||||
* 按游戏查找密钥货币数据列表
|
||||
*
|
||||
* @param gameSecretKeyCurrencyDTO 游戏密钥货币dto
|
||||
* @return {@link List }<{@link GameSecretKeyCurrencyDTO }>
|
||||
*/
|
||||
List<GameSecretKeyCurrencyDTO> findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO);
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ff.game.domain.GameSecretKeyLang;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyLangDTO;
|
||||
|
||||
/**
|
||||
* 游戏平台语言管理Mapper接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface GameSecretKeyLangMapper
|
||||
{
|
||||
/**
|
||||
* 查询游戏平台语言管理
|
||||
*
|
||||
* @param id 游戏平台语言管理主键
|
||||
* @return 游戏平台语言管理
|
||||
*/
|
||||
GameSecretKeyLang selectGameSecretKeyLangById(Long id);
|
||||
|
||||
/**
|
||||
* 查询游戏平台语言管理列表
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 游戏平台语言管理集合
|
||||
*/
|
||||
List<GameSecretKeyLang> selectGameSecretKeyLangList(GameSecretKeyLang gameSecretKeyLang);
|
||||
|
||||
/**
|
||||
* 新增游戏平台语言管理
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameSecretKeyLang(GameSecretKeyLang gameSecretKeyLang);
|
||||
|
||||
/**
|
||||
* 修改游戏平台语言管理
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameSecretKeyLang(GameSecretKeyLang gameSecretKeyLang);
|
||||
|
||||
/**
|
||||
* 删除游戏平台语言管理
|
||||
*
|
||||
* @param id 游戏平台语言管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyLangById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台语言管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyLangByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 查找游戏密钥货币dto
|
||||
*
|
||||
* @param gameSecretKeyLangDTO 游戏密钥货币dto
|
||||
* @return {@link GameSecretKeyLangDTO }
|
||||
*/
|
||||
GameSecretKeyLangDTO findGameSecretKeyLangDTO(GameSecretKeyLangDTO gameSecretKeyLangDTO);
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
|
||||
/**
|
||||
* 游戏平台密钥管理Mapper接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface GameSecretKeyMapper
|
||||
{
|
||||
/**
|
||||
* 查询游戏平台密钥管理
|
||||
*
|
||||
* @param id 游戏平台密钥管理主键
|
||||
* @return 游戏平台密钥管理
|
||||
*/
|
||||
GameSecretKey selectGameSecretKeyById(Long id);
|
||||
|
||||
/**
|
||||
* 查询游戏平台密钥管理列表
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 游戏平台密钥管理集合
|
||||
*/
|
||||
List<GameSecretKey> selectGameSecretKeyList(GameSecretKey gameSecretKey);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 按代码选择游戏密钥
|
||||
*
|
||||
* @param code 代码
|
||||
* @return {@link GameSecretKey }
|
||||
*/
|
||||
GameSecretKey selectGameSecretKeyByCode(String code);
|
||||
|
||||
|
||||
/**
|
||||
* 新增游戏平台密钥管理
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameSecretKey(GameSecretKey gameSecretKey);
|
||||
|
||||
/**
|
||||
* 修改游戏平台密钥管理
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameSecretKey(GameSecretKey gameSecretKey);
|
||||
|
||||
/**
|
||||
* 删除游戏平台密钥管理
|
||||
*
|
||||
* @param id 游戏平台密钥管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台密钥管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyByIds(Long[] ids);
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.ff.game.mapper;
|
||||
|
||||
import com.ff.game.domain.Platform;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
public interface PlatformMapper {
|
||||
|
||||
|
||||
List<Platform> selectList(Platform platform);
|
||||
|
||||
Platform selectByPlatformCode(String platformCode);
|
||||
|
||||
int updatePlatform(Platform platform);
|
||||
|
||||
int insertPlatform(Platform platform);
|
||||
|
||||
int deleteById(Long id);
|
||||
|
||||
int deleteByIds(String ids);
|
||||
}
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import com.ff.game.domain.GameName;
|
||||
import com.ff.game.dto.GameDTO;
|
||||
import com.ff.game.dto.GameNameDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 平台子游戏名称管理Service接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface IGameNameService
|
||||
{
|
||||
/**
|
||||
* 查询平台子游戏名称管理
|
||||
*
|
||||
* @param id 平台子游戏名称管理主键
|
||||
* @return 平台子游戏名称管理
|
||||
*/
|
||||
GameName selectGameNameById(Long id);
|
||||
|
||||
/**
|
||||
* 查询平台子游戏名称管理列表
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 平台子游戏名称管理集合
|
||||
*/
|
||||
List<GameName> selectGameNameList(GameName gameName);
|
||||
|
||||
/**
|
||||
* 新增平台子游戏名称管理
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameName(GameName gameName);
|
||||
|
||||
/**
|
||||
* 修改平台子游戏名称管理
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameName(GameName gameName);
|
||||
|
||||
/**
|
||||
* 批量删除平台子游戏名称管理
|
||||
*
|
||||
* @param ids 需要删除的平台子游戏名称管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameNameByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除平台子游戏名称管理信息
|
||||
*
|
||||
* @param id 平台子游戏名称管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameNameById(Long id);
|
||||
|
||||
/**
|
||||
* 选择游戏名称数据列表
|
||||
*
|
||||
* @param gameNameDTO 游戏dto
|
||||
* @return {@link List }<{@link GameDTO }>
|
||||
*/
|
||||
List<GameDTO> selectGameNameDTOList(GameNameDTO gameNameDTO);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ff.game.domain.GamePlatform;
|
||||
|
||||
/**
|
||||
* 平台管理Service接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-02-10
|
||||
*/
|
||||
public interface IGamePlatformService
|
||||
{
|
||||
/**
|
||||
* 查询平台管理
|
||||
*
|
||||
* @param id 平台管理主键
|
||||
* @return 平台管理
|
||||
*/
|
||||
GamePlatform selectGamePlatformById(Long id);
|
||||
|
||||
/**
|
||||
* 查询平台管理列表
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 平台管理集合
|
||||
*/
|
||||
List<GamePlatform> selectGamePlatformList(GamePlatform gamePlatform);
|
||||
|
||||
/**
|
||||
* 新增平台管理
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGamePlatform(GamePlatform gamePlatform);
|
||||
|
||||
/**
|
||||
* 修改平台管理
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGamePlatform(GamePlatform gamePlatform);
|
||||
|
||||
/**
|
||||
* 批量删除平台管理
|
||||
*
|
||||
* @param ids 需要删除的平台管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGamePlatformByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除平台管理信息
|
||||
*
|
||||
* @param id 平台管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGamePlatformById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 选择最大排序号
|
||||
*
|
||||
* @return {@link Integer }
|
||||
*/
|
||||
Integer selectMaxSortNo();
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ff.game.domain.GameName;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
import com.ff.game.domain.GameSecretKeyCurrency;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyDTO;
|
||||
|
||||
/**
|
||||
* 游戏平台币种管理Service接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface IGameSecretKeyCurrencyService
|
||||
{
|
||||
/**
|
||||
* 查询游戏平台币种管理
|
||||
*
|
||||
* @param id 游戏平台币种管理主键
|
||||
* @return 游戏平台币种管理
|
||||
*/
|
||||
GameSecretKeyCurrency selectGameSecretKeyCurrencyById(Long id);
|
||||
|
||||
/**
|
||||
* 查询游戏平台币种管理列表
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 游戏平台币种管理集合
|
||||
*/
|
||||
List<GameSecretKeyCurrency> selectGameSecretKeyCurrencyList(GameSecretKeyCurrency gameSecretKeyCurrency);
|
||||
|
||||
/**
|
||||
* 新增游戏平台币种管理
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameSecretKeyCurrency(GameSecretKeyCurrency gameSecretKeyCurrency);
|
||||
|
||||
/**
|
||||
* 修改游戏平台币种管理
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameSecretKeyCurrency(GameSecretKeyCurrency gameSecretKeyCurrency);
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台币种管理
|
||||
*
|
||||
* @param ids 需要删除的游戏平台币种管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyCurrencyByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除游戏平台币种管理信息
|
||||
*
|
||||
* @param id 游戏平台币种管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyCurrencyById(Long id);
|
||||
|
||||
/**
|
||||
* 按游戏找到密钥货币dto
|
||||
*
|
||||
* @param gameSecretKeyCurrencyDTO 游戏密钥货币dto
|
||||
* @return {@link GameSecretKeyCurrencyDTO }
|
||||
*/
|
||||
GameSecretKeyCurrencyDTO findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO);
|
||||
|
||||
|
||||
/**
|
||||
* 按游戏查找密钥货币数据列表
|
||||
*
|
||||
* @param gameSecretKeyCurrencyDTO 游戏密钥货币dto
|
||||
* @return {@link List }<{@link GameSecretKeyCurrencyDTO }>
|
||||
*/
|
||||
List<GameSecretKeyCurrencyDTO> findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ff.game.domain.GameSecretKeyLang;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyLangDTO;
|
||||
|
||||
/**
|
||||
* 游戏平台语言管理Service接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface IGameSecretKeyLangService {
|
||||
/**
|
||||
* 查询游戏平台语言管理
|
||||
*
|
||||
* @param id 游戏平台语言管理主键
|
||||
* @return 游戏平台语言管理
|
||||
*/
|
||||
GameSecretKeyLang selectGameSecretKeyLangById(Long id);
|
||||
|
||||
/**
|
||||
* 查询游戏平台语言管理列表
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 游戏平台语言管理集合
|
||||
*/
|
||||
List<GameSecretKeyLang> selectGameSecretKeyLangList(GameSecretKeyLang gameSecretKeyLang);
|
||||
|
||||
/**
|
||||
* 新增游戏平台语言管理
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameSecretKeyLang(GameSecretKeyLang gameSecretKeyLang);
|
||||
|
||||
/**
|
||||
* 修改游戏平台语言管理
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameSecretKeyLang(GameSecretKeyLang gameSecretKeyLang);
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台语言管理
|
||||
*
|
||||
* @param ids 需要删除的游戏平台语言管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyLangByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除游戏平台语言管理信息
|
||||
*
|
||||
* @param id 游戏平台语言管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyLangById(Long id);
|
||||
|
||||
/**
|
||||
* 查找游戏密钥货币dto
|
||||
*
|
||||
* @param gameSecretKeyLangDTO 游戏密钥货币dto
|
||||
* @return {@link GameSecretKeyLangDTO }
|
||||
*/
|
||||
GameSecretKeyLangDTO findGameSecretKeyLangDTO(GameSecretKeyLangDTO gameSecretKeyLangDTO);
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ff.game.domain.Game;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
|
||||
/**
|
||||
* 游戏平台密钥管理Service接口
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
public interface IGameSecretKeyService
|
||||
{
|
||||
/**
|
||||
* 查询游戏平台密钥管理
|
||||
*
|
||||
* @param id 游戏平台密钥管理主键
|
||||
* @return 游戏平台密钥管理
|
||||
*/
|
||||
GameSecretKey selectGameSecretKeyById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 按代码选择游戏密钥
|
||||
*
|
||||
* @param code 代码
|
||||
* @return {@link GameSecretKey }
|
||||
*/
|
||||
GameSecretKey selectGameSecretKeyByCode(String code);
|
||||
|
||||
/**
|
||||
* 查询游戏平台密钥管理列表
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 游戏平台密钥管理集合
|
||||
*/
|
||||
List<GameSecretKey> selectGameSecretKeyList(GameSecretKey gameSecretKey);
|
||||
|
||||
/**
|
||||
* 新增游戏平台密钥管理
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGameSecretKey(GameSecretKey gameSecretKey);
|
||||
|
||||
/**
|
||||
* 修改游戏平台密钥管理
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGameSecretKey(GameSecretKey gameSecretKey);
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台密钥管理
|
||||
*
|
||||
* @param ids 需要删除的游戏平台密钥管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除游戏平台密钥管理信息
|
||||
*
|
||||
* @param id 游戏平台密钥管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameSecretKeyById(Long id);
|
||||
}
|
||||
|
|
@ -1,28 +1,26 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.dtflys.forest.annotation.Body;
|
||||
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 IGameService
|
||||
{
|
||||
public interface IGameService {
|
||||
/**
|
||||
* 查询平台子游戏管理
|
||||
*
|
||||
* @param id 平台子游戏管理主键
|
||||
* @return 平台子游戏管理
|
||||
*/
|
||||
Game selectGameById(Long id);
|
||||
Game selectGameById(Long id);
|
||||
|
||||
/**
|
||||
* 查询平台子游戏管理列表
|
||||
|
|
@ -30,7 +28,7 @@ public interface IGameService
|
|||
* @param game 平台子游戏管理
|
||||
* @return 平台子游戏管理集合
|
||||
*/
|
||||
List<Game> selectGameList(Game game);
|
||||
List<Game> selectGameList(Game game);
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -47,7 +45,7 @@ public interface IGameService
|
|||
* @param game 平台子游戏管理
|
||||
* @return 结果
|
||||
*/
|
||||
int insertGame(Game game);
|
||||
int insertGame(Game game);
|
||||
|
||||
/**
|
||||
* 修改平台子游戏管理
|
||||
|
|
@ -55,7 +53,7 @@ public interface IGameService
|
|||
* @param game 平台子游戏管理
|
||||
* @return 结果
|
||||
*/
|
||||
int updateGame(Game game);
|
||||
int updateGame(Game game);
|
||||
|
||||
/**
|
||||
* 批量删除平台子游戏管理
|
||||
|
|
@ -63,7 +61,7 @@ public interface IGameService
|
|||
* @param ids 需要删除的平台子游戏管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameByIds(Long[] ids);
|
||||
int deleteGameByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除平台子游戏管理信息
|
||||
|
|
@ -71,15 +69,14 @@ public interface IGameService
|
|||
* @param id 平台子游戏管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteGameById(Long id);
|
||||
int deleteGameById(Long id);
|
||||
|
||||
/**
|
||||
* 按平台id选择最大排序号
|
||||
*
|
||||
* @param platformId 平台id
|
||||
* @return {@link Integer }
|
||||
*/
|
||||
Integer selectMaxSortNoByPlatformId(Long platformId);
|
||||
Integer selectMaxSortNo(Integer platformType, String platformCode);
|
||||
|
||||
/**
|
||||
* 选择游戏唯一列表
|
||||
|
|
@ -96,14 +93,5 @@ public interface IGameService
|
|||
*/
|
||||
List<GameResponse> selectGameResponseList();
|
||||
|
||||
/**
|
||||
* 插入游戏投注详细信息
|
||||
*
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @param platformCode 平台代码
|
||||
*/
|
||||
void insertGameBettingDetails(Long startTime,Long endTime,String platformCode);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
package com.ff.game.service;
|
||||
|
||||
import com.ff.game.domain.Platform;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
public interface IPlatformService {
|
||||
|
||||
List<Platform> selectList(Platform platform);
|
||||
|
||||
Platform selectByPlatformCode(String platformCode);
|
||||
|
||||
int updatePlatform(Platform platform);
|
||||
|
||||
int insertPlatform(Platform platform);
|
||||
|
||||
int deleteById(Long id);
|
||||
|
||||
int deleteByIds(String ids);
|
||||
|
||||
void loadToCache();
|
||||
|
||||
Platform get(String platformCode);
|
||||
}
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
package com.ff.game.service.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.game.domain.GameName;
|
||||
import com.ff.game.dto.GameDTO;
|
||||
import com.ff.game.dto.GameNameDTO;
|
||||
import com.ff.game.mapper.GameNameMapper;
|
||||
import com.ff.game.service.IGameNameService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 平台子游戏名称管理Service业务层处理
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Service
|
||||
public class GameNameServiceImpl implements IGameNameService {
|
||||
@Autowired
|
||||
private GameNameMapper gameNameMapper;
|
||||
|
||||
/**
|
||||
* 查询平台子游戏名称管理
|
||||
*
|
||||
* @param id 平台子游戏名称管理主键
|
||||
* @return 平台子游戏名称管理
|
||||
*/
|
||||
@Override
|
||||
public GameName selectGameNameById(Long id) {
|
||||
return gameNameMapper.selectGameNameById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询平台子游戏名称管理列表
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 平台子游戏名称管理
|
||||
*/
|
||||
@Override
|
||||
public List<GameName> selectGameNameList(GameName gameName) {
|
||||
return gameNameMapper.selectGameNameList(gameName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增平台子游戏名称管理
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertGameName(GameName gameName) {
|
||||
if (gameName.getId() == null) {
|
||||
gameName.setId(IdUtil.getSnowflakeNextId());
|
||||
}
|
||||
|
||||
gameName.setCreateTime(DateUtils.getNowDate());
|
||||
return gameNameMapper.insertGameName(gameName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改平台子游戏名称管理
|
||||
*
|
||||
* @param gameName 平台子游戏名称管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateGameName(GameName gameName) {
|
||||
gameName.setUpdateTime(DateUtils.getNowDate());
|
||||
return gameNameMapper.updateGameName(gameName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除平台子游戏名称管理
|
||||
*
|
||||
* @param ids 需要删除的平台子游戏名称管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameNameByIds(Long[] ids) {
|
||||
return gameNameMapper.deleteGameNameByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除平台子游戏名称管理信息
|
||||
*
|
||||
* @param id 平台子游戏名称管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameNameById(Long id) {
|
||||
return gameNameMapper.deleteGameNameById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择游戏名称数据列表
|
||||
*
|
||||
* @param gameNameDTO 游戏dto
|
||||
* @return {@link List }<{@link GameDTO }>
|
||||
*/
|
||||
@Override
|
||||
public List<GameDTO> selectGameNameDTOList(GameNameDTO gameNameDTO) {
|
||||
return gameNameMapper.selectGameNameDTOList(gameNameDTO);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
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.base.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ff.game.mapper.GamePlatformMapper;
|
||||
import com.ff.game.domain.GamePlatform;
|
||||
import com.ff.game.service.IGamePlatformService;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
/**
|
||||
* 平台管理Service业务层处理
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-02-10
|
||||
*/
|
||||
@Service
|
||||
public class GamePlatformServiceImpl implements IGamePlatformService {
|
||||
@Autowired
|
||||
private GamePlatformMapper gamePlatformMapper;
|
||||
|
||||
/**
|
||||
* 查询平台管理
|
||||
*
|
||||
* @param id 平台管理主键
|
||||
* @return 平台管理
|
||||
*/
|
||||
@Override
|
||||
public GamePlatform selectGamePlatformById(Long id) {
|
||||
return gamePlatformMapper.selectGamePlatformById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询平台管理列表
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 平台管理
|
||||
*/
|
||||
@Override
|
||||
public List<GamePlatform> selectGamePlatformList(GamePlatform gamePlatform) {
|
||||
return gamePlatformMapper.selectGamePlatformList(gamePlatform);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增平台管理
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertGamePlatform(GamePlatform gamePlatform) {
|
||||
if (ObjectUtils.isEmpty(gamePlatform.getId())) {
|
||||
gamePlatform.setId(IdUtil.getSnowflakeNextId());
|
||||
}
|
||||
gamePlatform.setCreateTime(DateUtils.getNowDate());
|
||||
return gamePlatformMapper.insertGamePlatform(gamePlatform);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改平台管理
|
||||
*
|
||||
* @param gamePlatform 平台管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateGamePlatform(GamePlatform gamePlatform) {
|
||||
gamePlatform.setUpdateTime(DateUtils.getNowDate());
|
||||
return gamePlatformMapper.updateGamePlatform(gamePlatform);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除平台管理
|
||||
*
|
||||
* @param ids 需要删除的平台管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGamePlatformByIds(Long[] ids) {
|
||||
return gamePlatformMapper.deleteGamePlatformByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除平台管理信息
|
||||
*
|
||||
* @param id 平台管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGamePlatformById(Long id) {
|
||||
return gamePlatformMapper.deleteGamePlatformById(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 选择最大排序号
|
||||
*
|
||||
* @return {@link Integer }
|
||||
*/
|
||||
@Override
|
||||
public Integer selectMaxSortNo() {
|
||||
return gamePlatformMapper.selectMaxSortNo();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,123 +0,0 @@
|
|||
package com.ff.game.service.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ff.game.mapper.GameSecretKeyCurrencyMapper;
|
||||
import com.ff.game.domain.GameSecretKeyCurrency;
|
||||
import com.ff.game.service.IGameSecretKeyCurrencyService;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏平台币种管理Service业务层处理
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Service
|
||||
public class GameSecretKeyCurrencyServiceImpl implements IGameSecretKeyCurrencyService
|
||||
{
|
||||
@Autowired
|
||||
private GameSecretKeyCurrencyMapper gameSecretKeyCurrencyMapper;
|
||||
|
||||
/**
|
||||
* 查询游戏平台币种管理
|
||||
*
|
||||
* @param id 游戏平台币种管理主键
|
||||
* @return 游戏平台币种管理
|
||||
*/
|
||||
@Override
|
||||
public GameSecretKeyCurrency selectGameSecretKeyCurrencyById(Long id)
|
||||
{
|
||||
return gameSecretKeyCurrencyMapper.selectGameSecretKeyCurrencyById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询游戏平台币种管理列表
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 游戏平台币种管理
|
||||
*/
|
||||
@Override
|
||||
public List<GameSecretKeyCurrency> selectGameSecretKeyCurrencyList(GameSecretKeyCurrency gameSecretKeyCurrency)
|
||||
{
|
||||
return gameSecretKeyCurrencyMapper.selectGameSecretKeyCurrencyList(gameSecretKeyCurrency);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增游戏平台币种管理
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertGameSecretKeyCurrency(GameSecretKeyCurrency gameSecretKeyCurrency)
|
||||
{
|
||||
gameSecretKeyCurrency.setId(IdUtil.getSnowflakeNextId());
|
||||
gameSecretKeyCurrency.setCreateTime(DateUtils.getNowDate());
|
||||
return gameSecretKeyCurrencyMapper.insertGameSecretKeyCurrency(gameSecretKeyCurrency);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改游戏平台币种管理
|
||||
*
|
||||
* @param gameSecretKeyCurrency 游戏平台币种管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateGameSecretKeyCurrency(GameSecretKeyCurrency gameSecretKeyCurrency)
|
||||
{
|
||||
gameSecretKeyCurrency.setUpdateTime(DateUtils.getNowDate());
|
||||
return gameSecretKeyCurrencyMapper.updateGameSecretKeyCurrency(gameSecretKeyCurrency);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台币种管理
|
||||
*
|
||||
* @param ids 需要删除的游戏平台币种管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameSecretKeyCurrencyByIds(Long[] ids)
|
||||
{
|
||||
return gameSecretKeyCurrencyMapper.deleteGameSecretKeyCurrencyByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除游戏平台币种管理信息
|
||||
*
|
||||
* @param id 游戏平台币种管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameSecretKeyCurrencyById(Long id)
|
||||
{
|
||||
return gameSecretKeyCurrencyMapper.deleteGameSecretKeyCurrencyById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按游戏找到密钥货币dto
|
||||
*
|
||||
* @param gameSecretKeyCurrencyDTO 游戏密钥货币dto
|
||||
* @return {@link GameSecretKeyCurrency }
|
||||
*/
|
||||
@Override
|
||||
public GameSecretKeyCurrencyDTO findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO) {
|
||||
return gameSecretKeyCurrencyMapper.findByGameSecretKeyCurrencyDTO(gameSecretKeyCurrencyDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按游戏查找密钥货币数据列表
|
||||
*
|
||||
* @param gameSecretKeyCurrencyDTO 游戏密钥货币dto
|
||||
* @return {@link List }<{@link GameSecretKeyCurrencyDTO }>
|
||||
*/
|
||||
@Override
|
||||
public List<GameSecretKeyCurrencyDTO> findByGameSecretKeyCurrencyDTOList(GameSecretKeyCurrencyDTO gameSecretKeyCurrencyDTO) {
|
||||
return gameSecretKeyCurrencyMapper.findByGameSecretKeyCurrencyDTOList(gameSecretKeyCurrencyDTO);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
package com.ff.game.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyLangDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ff.game.mapper.GameSecretKeyLangMapper;
|
||||
import com.ff.game.domain.GameSecretKeyLang;
|
||||
import com.ff.game.service.IGameSecretKeyLangService;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏平台语言管理Service业务层处理
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Service
|
||||
public class GameSecretKeyLangServiceImpl implements IGameSecretKeyLangService {
|
||||
@Autowired
|
||||
private GameSecretKeyLangMapper gameSecretKeyLangMapper;
|
||||
|
||||
/**
|
||||
* 查询游戏平台语言管理
|
||||
*
|
||||
* @param id 游戏平台语言管理主键
|
||||
* @return 游戏平台语言管理
|
||||
*/
|
||||
@Override
|
||||
public GameSecretKeyLang selectGameSecretKeyLangById(Long id) {
|
||||
return gameSecretKeyLangMapper.selectGameSecretKeyLangById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询游戏平台语言管理列表
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 游戏平台语言管理
|
||||
*/
|
||||
@Override
|
||||
public List<GameSecretKeyLang> selectGameSecretKeyLangList(GameSecretKeyLang gameSecretKeyLang) {
|
||||
return gameSecretKeyLangMapper.selectGameSecretKeyLangList(gameSecretKeyLang);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增游戏平台语言管理
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertGameSecretKeyLang(GameSecretKeyLang gameSecretKeyLang) {
|
||||
gameSecretKeyLang.setId(IdUtil.getSnowflakeNextId());
|
||||
gameSecretKeyLang.setCreateTime(DateUtils.getNowDate());
|
||||
return gameSecretKeyLangMapper.insertGameSecretKeyLang(gameSecretKeyLang);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改游戏平台语言管理
|
||||
*
|
||||
* @param gameSecretKeyLang 游戏平台语言管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateGameSecretKeyLang(GameSecretKeyLang gameSecretKeyLang) {
|
||||
gameSecretKeyLang.setUpdateTime(DateUtils.getNowDate());
|
||||
return gameSecretKeyLangMapper.updateGameSecretKeyLang(gameSecretKeyLang);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台语言管理
|
||||
*
|
||||
* @param ids 需要删除的游戏平台语言管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameSecretKeyLangByIds(Long[] ids) {
|
||||
return gameSecretKeyLangMapper.deleteGameSecretKeyLangByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除游戏平台语言管理信息
|
||||
*
|
||||
* @param id 游戏平台语言管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameSecretKeyLangById(Long id) {
|
||||
return gameSecretKeyLangMapper.deleteGameSecretKeyLangById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找游戏密钥货币dto
|
||||
*
|
||||
* @param gameSecretKeyLangDTO 游戏密钥货币dto
|
||||
* @return {@link GameSecretKeyLangDTO }
|
||||
*/
|
||||
@Override
|
||||
public GameSecretKeyLangDTO findGameSecretKeyLangDTO(GameSecretKeyLangDTO gameSecretKeyLangDTO) {
|
||||
return gameSecretKeyLangMapper.findGameSecretKeyLangDTO(gameSecretKeyLangDTO);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
package com.ff.game.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ff.game.mapper.GameSecretKeyMapper;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
import com.ff.game.service.IGameSecretKeyService;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 游戏平台密钥管理Service业务层处理
|
||||
*
|
||||
* @author shi
|
||||
* @date 2025-03-13
|
||||
*/
|
||||
@Service
|
||||
public class GameSecretKeyServiceImpl implements IGameSecretKeyService
|
||||
{
|
||||
@Autowired
|
||||
private GameSecretKeyMapper gameSecretKeyMapper;
|
||||
|
||||
/**
|
||||
* 查询游戏平台密钥管理
|
||||
*
|
||||
* @param id 游戏平台密钥管理主键
|
||||
* @return 游戏平台密钥管理
|
||||
*/
|
||||
@Override
|
||||
public GameSecretKey selectGameSecretKeyById(Long id)
|
||||
{
|
||||
return gameSecretKeyMapper.selectGameSecretKeyById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按代码选择游戏密钥
|
||||
*
|
||||
* @param code 代码
|
||||
* @return {@link GameSecretKey }
|
||||
*/
|
||||
@Override
|
||||
public GameSecretKey selectGameSecretKeyByCode(String code) {
|
||||
return gameSecretKeyMapper.selectGameSecretKeyByCode(code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询游戏平台密钥管理列表
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 游戏平台密钥管理
|
||||
*/
|
||||
@Override
|
||||
public List<GameSecretKey> selectGameSecretKeyList(GameSecretKey gameSecretKey)
|
||||
{
|
||||
return gameSecretKeyMapper.selectGameSecretKeyList(gameSecretKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增游戏平台密钥管理
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertGameSecretKey(GameSecretKey gameSecretKey)
|
||||
{
|
||||
gameSecretKey.setId(IdUtil.getSnowflakeNextId());
|
||||
gameSecretKey.setCreateTime(DateUtils.getNowDate());
|
||||
return gameSecretKeyMapper.insertGameSecretKey(gameSecretKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改游戏平台密钥管理
|
||||
*
|
||||
* @param gameSecretKey 游戏平台密钥管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateGameSecretKey(GameSecretKey gameSecretKey)
|
||||
{
|
||||
gameSecretKey.setUpdateTime(DateUtils.getNowDate());
|
||||
return gameSecretKeyMapper.updateGameSecretKey(gameSecretKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除游戏平台密钥管理
|
||||
*
|
||||
* @param ids 需要删除的游戏平台密钥管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameSecretKeyByIds(Long[] ids)
|
||||
{
|
||||
return gameSecretKeyMapper.deleteGameSecretKeyByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除游戏平台密钥管理信息
|
||||
*
|
||||
* @param id 游戏平台密钥管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteGameSecretKeyById(Long id)
|
||||
{
|
||||
return gameSecretKeyMapper.deleteGameSecretKeyById(id);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,29 +1,22 @@
|
|||
package com.ff.game.service.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.ff.api.response.GameResponse;
|
||||
import com.ff.base.constant.ConfigConstants;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.request.BetRecordByTimeDTO;
|
||||
import com.ff.game.api.request.GameUniqueDTO;
|
||||
import com.ff.game.api.request.GamesBaseRequestDTO;
|
||||
import com.ff.game.domain.GameSecretKey;
|
||||
import com.ff.game.domain.Game;
|
||||
import com.ff.game.dto.GameDTO;
|
||||
import com.ff.game.service.IGameSecretKeyService;
|
||||
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 com.ff.game.mapper.GameMapper;
|
||||
import com.ff.game.domain.Game;
|
||||
import com.ff.game.service.IGameService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 平台子游戏管理Service业务层处理
|
||||
|
|
@ -34,16 +27,13 @@ import javax.annotation.Resource;
|
|||
@Service
|
||||
@Slf4j
|
||||
public class GameServiceImpl implements IGameService {
|
||||
|
||||
@Autowired
|
||||
private GameMapper gameMapper;
|
||||
|
||||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Autowired
|
||||
private Map<String, IGamesService> gamesService;
|
||||
|
||||
|
|
@ -129,19 +119,6 @@ public class GameServiceImpl implements IGameService {
|
|||
return gameMapper.deleteGameById(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 按平台id选择最大排序号
|
||||
*
|
||||
* @param platformId 平台id
|
||||
* @return {@link Integer }
|
||||
*/
|
||||
@Override
|
||||
public Integer selectMaxSortNoByPlatformId(Long platformId) {
|
||||
return gameMapper.selectMaxSortNoByPlatformId(platformId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 选择游戏唯一列表
|
||||
*
|
||||
|
|
@ -163,35 +140,9 @@ public class GameServiceImpl implements IGameService {
|
|||
return gameMapper.selectGameResponseList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入游戏投注详细信息
|
||||
*
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @param platformCode 平台代码
|
||||
*/
|
||||
@Override
|
||||
public void insertGameBettingDetails(Long startTime, Long endTime, String platformCode) {
|
||||
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(platformCode).build());
|
||||
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
||||
try {
|
||||
gamesService.get(platformCode).getGameList(GamesBaseRequestDTO.builder()
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.build());
|
||||
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
||||
betRecordByTimeDTO.setGamePlatform(gameSecretKey.getPlatform());
|
||||
betRecordByTimeDTO.setStartTime(startTime);
|
||||
betRecordByTimeDTO.setEndTime(endTime);
|
||||
betRecordByTimeDTO.setPage(1);
|
||||
betRecordByTimeDTO.setPageLimit(1000);
|
||||
betRecordByTimeDTO.setAgentId(gameSecretKey.getCode());
|
||||
betRecordByTimeDTO.setAgentKey(gameSecretKey.getKey());
|
||||
gamesService.get(platformCode).getBetRecordByHistoryTime(betRecordByTimeDTO);
|
||||
} catch (Exception e) {
|
||||
log.error("查询 平台 {} 投注记录失败,错误信息 {}", gameSecretKey.getCode(), e);
|
||||
}
|
||||
}
|
||||
public Integer selectMaxSortNo(Integer platformType, String platformCode) {
|
||||
return gameMapper.selectMaxSortNoBy(platformType, platformCode);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
package com.ff.game.service.impl;
|
||||
|
||||
import com.ff.base.constant.CacheConstants;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
@Service
|
||||
public class PlatformServiceImpl implements IPlatformService {
|
||||
|
||||
@Autowired
|
||||
PlatformMapper platformMapper;
|
||||
@Autowired
|
||||
RedisCache redisCache;
|
||||
|
||||
@Override
|
||||
public List<Platform> 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<Object, DataSource> resolvedDataSources = DynamicDataSourceContextHolder.getAllDataSource();
|
||||
for (Map.Entry<Object, DataSource> entry : resolvedDataSources.entrySet()) {
|
||||
Object key = entry.getKey();
|
||||
// 设置数据源类型
|
||||
DynamicDataSourceContextHolder.setDataSourceType(key.toString());
|
||||
List<Platform> list = selectList(new Platform());
|
||||
for (Platform pp : list) {
|
||||
redisCache.setCacheObject(getCacheKey(pp.getPlatformCode()), pp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Platform get(String platformCode) {
|
||||
return redisCache.getCacheObject(getCacheKey(platformCode));
|
||||
}
|
||||
|
||||
private String getCacheKey(String configKey) {
|
||||
return CacheConstants.Platform + configKey;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,43 +1,30 @@
|
|||
package com.ff.quartz.task;
|
||||
|
||||
import com.ff.base.constant.Constants;
|
||||
import com.ff.base.core.redis.RedisCache;
|
||||
import com.ff.base.datasource.DynamicDataSourceContextHolder;
|
||||
import com.ff.base.enums.GamePlatforms;
|
||||
import com.ff.base.enums.NGPlatforms;
|
||||
import com.ff.base.enums.PlatformType;
|
||||
import com.ff.base.enums.StatusType;
|
||||
import com.ff.base.utils.DateUtils;
|
||||
import com.ff.base.utils.StringUtils;
|
||||
import com.ff.game.api.IGamesService;
|
||||
import com.ff.game.api.ng.client.NGClient;
|
||||
import com.ff.game.api.ng.dto.ApiExchangeTransferStatusResponseDTO;
|
||||
import com.ff.game.api.ng.dto.ApiNGResponseDTO;
|
||||
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.GameSecretKey;
|
||||
import com.ff.game.dto.GameSecretKeyCurrencyDTO;
|
||||
import com.ff.game.dto.GameSecretKeyDTO;
|
||||
import com.ff.game.service.*;
|
||||
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.context.ApplicationEventPublisher;
|
||||
import org.springframework.scheduling.annotation.AsyncConfigurationSelector;
|
||||
import org.springframework.security.core.parameters.P;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.sql.DataSource;
|
||||
import javax.xml.crypto.dsig.keyinfo.PGPData;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -50,242 +37,213 @@ import java.util.stream.Collectors;
|
|||
@Component("gameTask")
|
||||
public class GameTask {
|
||||
|
||||
|
||||
@Autowired
|
||||
private Map<String, IGamesService> gamesService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyService gameSecretKeyService;
|
||||
|
||||
@Resource
|
||||
private IGamePlatformService gamePlatformService;
|
||||
|
||||
|
||||
@Resource
|
||||
private NGClient ngClient;
|
||||
|
||||
@Resource
|
||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||
|
||||
@Resource
|
||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||
|
||||
@Resource
|
||||
private IMemberService memberService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
|
||||
@Resource
|
||||
private IGameService gameService;
|
||||
private IPlatformService platformService;
|
||||
|
||||
/**
|
||||
* 插入游戏投注详细信息
|
||||
* 同步游戏列表
|
||||
*/
|
||||
|
||||
public void insertGameBettingDetails(Integer backTime) {
|
||||
|
||||
//捞取指定分钟前的数据
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
|
||||
|
||||
for (String gameKey : gamesService.keySet()) {
|
||||
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
||||
//特殊的平台跳过
|
||||
if (NGPlatforms.exists(platformCode) || GamePlatforms.FC.getInfo().equals(platformCode)) {
|
||||
continue;
|
||||
public void syncGameList() {
|
||||
for (GamePlatforms gamePlatform : GamePlatforms.values()) {
|
||||
String platformCode = gamePlatform.getCode();
|
||||
try {
|
||||
syncGameList(platformCode);
|
||||
} catch (Exception e) {
|
||||
log.error("同步游戏列表失败platformCode:{}", platformCode, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(platformCode).build());
|
||||
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
||||
try {
|
||||
gamesService.get(gameKey).getGameList(GamesBaseRequestDTO.builder()
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
public void syncGameList(String platformCode) {
|
||||
|
||||
Platform platform = platformService.get(platformCode);
|
||||
if (null == platform) {
|
||||
return;
|
||||
}
|
||||
List<KeyInfo> 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());
|
||||
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
||||
betRecordByTimeDTO.setGamePlatform(gameSecretKey.getPlatform());
|
||||
betRecordByTimeDTO.setStartTime(startTime);
|
||||
betRecordByTimeDTO.setEndTime(endTime);
|
||||
betRecordByTimeDTO.setPage(1);
|
||||
betRecordByTimeDTO.setPageLimit(1000);
|
||||
betRecordByTimeDTO.setAgentId(gameSecretKey.getCode());
|
||||
betRecordByTimeDTO.setAgentKey(gameSecretKey.getKey());
|
||||
gamesService.get(gameKey).getBetRecordByTime(betRecordByTimeDTO);
|
||||
} catch (Exception e) {
|
||||
log.error("查询 币种 {} 投注记录失败,错误信息 {}", gameSecretKey.getCode(), e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步实时投注记录
|
||||
*
|
||||
* @param platformCode
|
||||
* @param backTimeMin
|
||||
*/
|
||||
public void syncRealtimeBetRecord(String platformCode, Integer backTimeMin) {
|
||||
//捞取指定分钟前的数据
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTimeMin);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
|
||||
Platform platform = platformService.get(platformCode);
|
||||
if (null == platform) {
|
||||
return;
|
||||
}
|
||||
List<KeyInfo> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入游戏cfbetting详细信息
|
||||
*/
|
||||
public void insertGameCFBettingDetails(Integer backTime) {
|
||||
|
||||
|
||||
try {
|
||||
//捞取指定分钟前的数据
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
|
||||
for (String gameKey : gamesService.keySet()) {
|
||||
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
||||
//不是特殊的平台跳过
|
||||
if (!GamePlatforms.FC.getInfo().equals(platformCode)) {
|
||||
continue;
|
||||
}
|
||||
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(platformCode).build());
|
||||
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
||||
try {
|
||||
gamesService.get(gameKey).getGameList(GamesBaseRequestDTO.builder()
|
||||
.agentId(gameSecretKey.getCode())
|
||||
.agentKey(gameSecretKey.getKey())
|
||||
.build());
|
||||
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
||||
betRecordByTimeDTO.setGamePlatform(gameSecretKey.getPlatform());
|
||||
betRecordByTimeDTO.setStartTime(startTime);
|
||||
betRecordByTimeDTO.setEndTime(endTime);
|
||||
betRecordByTimeDTO.setPage(1);
|
||||
betRecordByTimeDTO.setPageLimit(1000);
|
||||
betRecordByTimeDTO.setAgentId(gameSecretKey.getCode());
|
||||
betRecordByTimeDTO.setAgentKey(gameSecretKey.getKey());
|
||||
gamesService.get(gameKey).getBetRecordByTime(betRecordByTimeDTO);
|
||||
} catch (Exception e) {
|
||||
log.error("查询 平台 {} 投注记录失败,错误信息 {}", gameSecretKey.getCode(), e);
|
||||
}
|
||||
}
|
||||
|
||||
if (platform.isMultiAgent()) {
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("查询 FC 投注记录失败,错误信息 {}", e);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 插入FC游戏投注详细信息
|
||||
*
|
||||
* @param backTime 返回时间
|
||||
*/
|
||||
public void insertFCHistoryGameBettingDetails(Integer backTime) {
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
//捞取指定分钟前的数据
|
||||
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.FC.getInfo());
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 插入AE游戏投注详细信息
|
||||
*
|
||||
* @param backTime 返回时间
|
||||
*/
|
||||
public void insertAEHistoryGameBettingDetails(Integer backTime) {
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
//捞取指定分钟前的数据
|
||||
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.AE.getInfo());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入PGX游戏投注详细信息
|
||||
* 同步历史投注记录
|
||||
*
|
||||
* @param backTime 返回时间
|
||||
* @param platformCode
|
||||
* @param backTimeMin
|
||||
*/
|
||||
public void insertPGXHistoryGameBettingDetails(Integer backTime) {
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
//捞取指定分钟前的数据
|
||||
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.PGX.getInfo());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入MT游戏投注详细信息
|
||||
*
|
||||
* @param backTime 返回时间
|
||||
*/
|
||||
public void insertMTHistoryGameBettingDetails(Integer backTime) {
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
public void syncHistoryBetRecord(String platformCode, Integer backTimeMin) {
|
||||
|
||||
//捞取指定分钟前的数据
|
||||
gameService.insertGameBettingDetails(startTime, endTime, GamePlatforms.MeiTian.getCode());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入游戏ngbetting详细信息
|
||||
*/
|
||||
public void insertGameNGBettingDetails(Integer backTime) {
|
||||
|
||||
|
||||
try {
|
||||
//捞取指定分钟前的数据
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
||||
betRecordByTimeDTO.setStartTime(startTime);
|
||||
betRecordByTimeDTO.setEndTime(endTime);
|
||||
gamesService.get(NGPlatforms.PG.getPlatform() + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO);
|
||||
} catch (Exception e) {
|
||||
log.error("查询 NG 投注记录失败,错误信息 {}", e);
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTimeMin);
|
||||
Long endTime = DateUtils.getNowDate();
|
||||
|
||||
Platform platform = platformService.get(platformCode);
|
||||
if (null == platform) {
|
||||
return;
|
||||
}
|
||||
List<KeyInfo> 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()));
|
||||
|
||||
/**
|
||||
* 插入免费游戏局数情况
|
||||
*/
|
||||
public void insertFreeSpinDashflow() {
|
||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -70);
|
||||
for (String gameKey : gamesService.keySet()) {
|
||||
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(gameKey.replace(Constants.SERVICE, "")).build());
|
||||
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
||||
try {
|
||||
GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO = new GetFreeSpinDashflowRequestDTO();
|
||||
getFreeSpinDashflowRequestDTO.setStartTime(startTime);
|
||||
getFreeSpinDashflowRequestDTO.setAgentId(gameSecretKey.getCode());
|
||||
getFreeSpinDashflowRequestDTO.setAgentKey(gameSecretKey.getKey());
|
||||
gamesService.get(gameKey).getFreeSpinDashflow(getFreeSpinDashflowRequestDTO);
|
||||
} catch (Exception e) {
|
||||
log.error("查询 币种 {} 免费游戏投注记录失败,错误信息 {}", gameSecretKey.getCode(), e.getMessage());
|
||||
}
|
||||
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<KeyInfo> 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() {
|
||||
List<GameExchangeMoney> gameExchangeMoneyList = gameExchangeMoneyService.selectGameExchangeMoneyList(GameExchangeMoney.builder().status(StatusType.IN_PROGRESS.getValue()).build());
|
||||
for (GameExchangeMoney exchangeMoney : gameExchangeMoneyList) {
|
||||
try {
|
||||
GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
.platformCode(exchangeMoney.getPlatformCode())
|
||||
.systemCurrency(exchangeMoney.getCurrencyCode()).build());
|
||||
// GameSecretKeyCurrencyDTO gameSecretKey = gameSecretKeyCurrencyService.findByGameSecretKeyCurrencyDTO(GameSecretKeyCurrencyDTO.builder()
|
||||
// .platformCode(exchangeMoney.getPlatformCode())
|
||||
// .systemCurrency(exchangeMoney.getCurrencyCode()).build());
|
||||
Platform platform = platformService.get(exchangeMoney.getPlatformCode());
|
||||
if (null == platform) {
|
||||
log.error("平台不存在platformCode:{}", exchangeMoney.getPlatformCode());
|
||||
continue;
|
||||
}
|
||||
|
||||
List<KeyInfo> keyInfos = platform.getKeyInfo();
|
||||
KeyInfo keyInfo = null;
|
||||
for (KeyInfo keyData : keyInfos) {
|
||||
if (keyData.getCurrency().equalsIgnoreCase(exchangeMoney.getCurrencyCode())) {
|
||||
keyInfo = keyData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (null == keyInfo) {
|
||||
log.error("平台不存在currencyCode:{}", exchangeMoney.getCurrencyCode());
|
||||
continue;
|
||||
}
|
||||
String targetCurrency = platform.getCurrencyInfo().get(exchangeMoney.getCurrencyCode());
|
||||
if (StringUtils.isEmpty(targetCurrency)) {
|
||||
log.error("平台不存在currencyCode:{}", exchangeMoney.getCurrencyCode());
|
||||
continue;
|
||||
}
|
||||
Member member = memberService.selectMemberById(exchangeMoney.getMemberId());
|
||||
|
||||
ExchangeTransferStatusRequestDTO exchangeTransferStatusRequestDTO = new ExchangeTransferStatusRequestDTO();
|
||||
exchangeTransferStatusRequestDTO.setAccount(member.getGameAccount());
|
||||
exchangeTransferStatusRequestDTO.setCurrency(gameSecretKey.getCurrency());
|
||||
exchangeTransferStatusRequestDTO.setCurrency(targetCurrency);
|
||||
exchangeTransferStatusRequestDTO.setOrderId(exchangeMoney.getTransactionId());
|
||||
exchangeTransferStatusRequestDTO.setAgentId(gameSecretKey.getCode());
|
||||
exchangeTransferStatusRequestDTO.setAgentKey(gameSecretKey.getKey());
|
||||
exchangeTransferStatusRequestDTO.setAgentId(keyInfo.getCode());
|
||||
exchangeTransferStatusRequestDTO.setAgentKey(keyInfo.getKey());
|
||||
exchangeTransferStatusRequestDTO.setGameExchangeMoneyId(exchangeMoney.getId());
|
||||
exchangeTransferStatusRequestDTO.setVendor(platform);
|
||||
exchangeTransferStatusRequestDTO.setKeyInfo(keyInfo);
|
||||
exchangeTransferStatusRequestDTO.setSystemCurrency(exchangeMoney.getCurrencyCode());
|
||||
gamesService.get(exchangeMoney.getPlatformCode() + Constants.SERVICE).exchangeTransferStatus(exchangeTransferStatusRequestDTO);
|
||||
} catch (Exception e) {
|
||||
log.error("查询 更新交易记录失败,错误信息 {}", e);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
package com.ff.sports.api.fb.address;
|
||||
|
||||
import com.dtflys.forest.callback.AddressSource;
|
||||
import com.dtflys.forest.http.ForestAddress;
|
||||
import com.dtflys.forest.http.ForestRequest;
|
||||
import com.ff.base.system.service.ISysConfigService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
/**
|
||||
* @author shi
|
||||
* @date 2025/02/10
|
||||
*/
|
||||
@Component
|
||||
public class FbAddress implements AddressSource {
|
||||
|
||||
public static final String API_BASE_URL = "fb.api.base.url";
|
||||
@Resource
|
||||
private ISysConfigService configService;
|
||||
|
||||
|
||||
@Override
|
||||
public ForestAddress getAddress(ForestRequest request) {
|
||||
String apiBaseUrl = configService.selectConfigByKey(API_BASE_URL);
|
||||
return new ForestAddress("https", apiBaseUrl, 443, "services");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package com.ff.sports.fb;
|
||||
|
||||
/**
|
||||
* @author cengy
|
||||
*/
|
||||
public class A {
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="ingress" column="ingress" />
|
||||
<result property="gameSourceType" column="game_source_type" />
|
||||
<result property="gameName" column="game_name" />
|
||||
<result property="nameInfo" column="name_info" typeHandler="com.ff.base.handler.JsonListHandler" javaType="com.ff.game.domain.NameInfo" />
|
||||
<result property="freespin" column="freespin" />
|
||||
<result property="demoStatus" column="demo_status" />
|
||||
<result property="stopStatus" column="stop_status" />
|
||||
|
|
@ -40,6 +41,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="freespin != null "> and freespin = #{freespin}</if>
|
||||
<if test="demoStatus != null "> and demo_status = #{demoStatus}</if>
|
||||
<if test="stopStatus != null "> and stop_status = #{stopStatus}</if>
|
||||
<if test="platformCode != null "> and platform_code = #{platformCode}</if>
|
||||
<if test="platformType != null "> and platform_type = #{platformType}</if>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
|
@ -161,6 +165,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where platform_id = #{platformId}
|
||||
</select>
|
||||
|
||||
<select id="selectMaxSortNoBy" resultType="java.lang.Integer">
|
||||
select ifnull(max(sort_no), 0)
|
||||
from ff_game
|
||||
where platform_type = #{platformType} and platform_code = #{platformCode}
|
||||
</select>
|
||||
<resultMap id="GameResponseResultMap" type="com.ff.api.response.GameResponse">
|
||||
<result property="id" column="id"/>
|
||||
<result property="gameName" column="game_name"/>
|
||||
|
|
|
|||
|
|
@ -1,124 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ff.game.mapper.GameNameMapper">
|
||||
|
||||
<resultMap type="GameName" id="GameNameResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="gameId" column="game_id" />
|
||||
<result property="gameName" column="game_name" />
|
||||
<result property="langCode" column="lang_code" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ff.game.dto.GameNameDTO" id="GameNameDTOResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="gameId" column="game_id" />
|
||||
<result property="gameName" column="game_name" />
|
||||
<result property="langCode" column="lang_code" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="defaultName" column="default_name" />
|
||||
<result property="gameCode" column="game_code" />
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<sql id="selectGameNameVo">
|
||||
select id, game_id, game_name, lang_code, create_by, create_time, update_by, update_time from ff_game_name
|
||||
</sql>
|
||||
|
||||
<select id="selectGameNameList" parameterType="GameName" resultMap="GameNameResult">
|
||||
<include refid="selectGameNameVo"/>
|
||||
<where>
|
||||
<if test="gameId != null "> and game_id = #{gameId}</if>
|
||||
<if test="gameName != null and gameName != ''"> and game_name = #{gameName}</if>
|
||||
<if test="langCode != null and langCode != ''"> and lang_code = #{langCode}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGameNameDTOList" parameterType="com.ff.game.dto.GameNameDTO" resultMap="GameNameDTOResult">
|
||||
select gn.id,
|
||||
gn.game_id,
|
||||
gn.game_name,
|
||||
gn.lang_code,
|
||||
gn.create_by,
|
||||
gn.create_time,
|
||||
gn.update_by,
|
||||
g.game_code,
|
||||
gn.update_time,
|
||||
g.game_name as default_name
|
||||
from ff_game_name gn
|
||||
inner join ff_game g on g.id = gn.game_id
|
||||
inner join ff_game_platform gp on gp.id = g.platform_id
|
||||
|
||||
<where>
|
||||
<if test="platformCode != null and platformCode != ''"> and gp.platform_code = #{platformCode}</if>
|
||||
<if test="gameId != null "> and gn.game_id = #{gameId}</if>
|
||||
<if test="gameName != null and gameName != ''"> and gn.game_name = #{gameName}</if>
|
||||
<if test="langCode != null and langCode != ''"> and gn.lang_code =#{langCode}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGameNameById" parameterType="Long" resultMap="GameNameResult">
|
||||
<include refid="selectGameNameVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertGameName" parameterType="GameName">
|
||||
insert into ff_game_name
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="gameId != null">game_id,</if>
|
||||
<if test="gameName != null">game_name,</if>
|
||||
<if test="langCode != null">lang_code,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="gameId != null">#{gameId},</if>
|
||||
<if test="gameName != null">#{gameName},</if>
|
||||
<if test="langCode != null">#{langCode},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateGameName" parameterType="GameName">
|
||||
update ff_game_name
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="gameId != null">game_id = #{gameId},</if>
|
||||
<if test="gameName != null">game_name = #{gameName},</if>
|
||||
<if test="langCode != null">lang_code = #{langCode},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteGameNameById" parameterType="Long">
|
||||
delete from ff_game_name where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteGameNameByIds" parameterType="String">
|
||||
delete from ff_game_name where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ff.game.mapper.GamePlatformMapper">
|
||||
|
||||
<resultMap type="GamePlatform" id="GamePlatformResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="sortNo" column="sort_no" />
|
||||
<result property="platformCode" column="platform_code" />
|
||||
<result property="platformType" column="platform_type" />
|
||||
<result property="platformName" column="platform_name" />
|
||||
<result property="stopStatus" column="stop_status" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectGamePlatformVo">
|
||||
select id, sort_no, platform_code, platform_type, platform_name, stop_status, create_by, create_time, update_by, update_time from ff_game_platform
|
||||
</sql>
|
||||
|
||||
<select id="selectGamePlatformList" parameterType="GamePlatform" resultMap="GamePlatformResult">
|
||||
<include refid="selectGamePlatformVo"/>
|
||||
<where>
|
||||
<if test="sortNo != null "> and sort_no = #{sortNo}</if>
|
||||
<if test="platformCode != null and platformCode != ''"> and platform_code = #{platformCode}</if>
|
||||
<if test="platformType != null "> and platform_type = #{platformType}</if>
|
||||
<if test="platformName != null and platformName != ''"> and platform_name like concat('%', #{platformName}, '%')</if>
|
||||
<if test="stopStatus != null "> and stop_status = #{stopStatus}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGamePlatformById" parameterType="Long" resultMap="GamePlatformResult">
|
||||
<include refid="selectGamePlatformVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertGamePlatform" parameterType="GamePlatform" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into ff_game_platform
|
||||
<trim prefix="(" suffix=")" suffixOverrides=","><if test="id != null">id,</if>
|
||||
<if test="sortNo != null">sort_no,</if>
|
||||
<if test="platformCode != null">platform_code,</if>
|
||||
<if test="platformType != null">platform_type,</if>
|
||||
<if test="platformName != null">platform_name,</if>
|
||||
<if test="stopStatus != null">stop_status,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if>
|
||||
<if test="sortNo != null">#{sortNo},</if>
|
||||
<if test="platformCode != null">#{platformCode},</if>
|
||||
<if test="platformType != null">#{platformType},</if>
|
||||
<if test="platformName != null">#{platformName},</if>
|
||||
<if test="stopStatus != null">#{stopStatus},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateGamePlatform" parameterType="GamePlatform">
|
||||
update ff_game_platform
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="sortNo != null">sort_no = #{sortNo},</if>
|
||||
<if test="platformCode != null">platform_code = #{platformCode},</if>
|
||||
<if test="platformType != null">platform_type = #{platformType},</if>
|
||||
<if test="platformName != null">platform_name = #{platformName},</if>
|
||||
<if test="stopStatus != null">stop_status = #{stopStatus},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteGamePlatformById" parameterType="Long">
|
||||
delete from ff_game_platform where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteGamePlatformByIds" parameterType="String">
|
||||
delete from ff_game_platform where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectMaxSortNo" resultType="java.lang.Integer">
|
||||
|
||||
select ifnull(max(sort_no),0)
|
||||
from ff_game_platform
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -1,141 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ff.game.mapper.GameSecretKeyCurrencyMapper">
|
||||
|
||||
<resultMap type="GameSecretKeyCurrency" id="GameSecretKeyCurrencyResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="gameSecretKeyId" column="game_secret_key_id" />
|
||||
<result property="currencyId" column="currency_id" />
|
||||
<result property="currency" column="currency" />
|
||||
<result property="systemCurrency" column="system_currency" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ff.game.dto.GameSecretKeyCurrencyDTO" id="GameSecretKeyCurrencyDTOResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="gameSecretKeyId" column="game_secret_key_id" />
|
||||
<result property="currencyId" column="currency_id" />
|
||||
<result property="currency" column="currency" />
|
||||
<result property="systemCurrency" column="system_currency" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="code" column="code" />
|
||||
<result property="key" column="key" />
|
||||
<result property="platformCode" column="platform_code" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectGameSecretKeyCurrencyVo">
|
||||
select id,currency_id, game_secret_key_id, currency, system_currency, create_by, create_time, update_by, update_time from ff_game_secret_key_currency
|
||||
</sql>
|
||||
|
||||
<select id="selectGameSecretKeyCurrencyList" parameterType="GameSecretKeyCurrency" resultMap="GameSecretKeyCurrencyResult">
|
||||
<include refid="selectGameSecretKeyCurrencyVo"/>
|
||||
<where>
|
||||
<if test="gameSecretKeyId != null "> and game_secret_key_id = #{gameSecretKeyId}</if>
|
||||
<if test="currency != null and currency != ''"> and currency = #{currency}</if>
|
||||
<if test="systemCurrency != null and systemCurrency != ''"> and system_currency = #{systemCurrency}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGameSecretKeyCurrencyById" parameterType="Long" resultMap="GameSecretKeyCurrencyResult">
|
||||
<include refid="selectGameSecretKeyCurrencyVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertGameSecretKeyCurrency" parameterType="GameSecretKeyCurrency">
|
||||
insert into ff_game_secret_key_currency
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="gameSecretKeyId != null">game_secret_key_id,</if>
|
||||
<if test="currencyId != null">currency_id,</if>
|
||||
<if test="currency != null">currency,</if>
|
||||
<if test="systemCurrency != null and systemCurrency != ''">system_currency,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="gameSecretKeyId != null">#{gameSecretKeyId},</if>
|
||||
<if test="currencyId != null">#{currencyId},</if>
|
||||
<if test="currency != null">#{currency},</if>
|
||||
<if test="systemCurrency != null and systemCurrency != ''">#{systemCurrency},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateGameSecretKeyCurrency" parameterType="GameSecretKeyCurrency">
|
||||
update ff_game_secret_key_currency
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="gameSecretKeyId != null">game_secret_key_id = #{gameSecretKeyId},</if>
|
||||
<if test="currencyId != null">currency_id = #{currencyId},</if>
|
||||
<if test="currency != null">currency = #{currency},</if>
|
||||
<if test="systemCurrency != null and systemCurrency != ''">system_currency = #{systemCurrency},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteGameSecretKeyCurrencyById" parameterType="Long">
|
||||
delete from ff_game_secret_key_currency where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteGameSecretKeyCurrencyByIds" parameterType="String">
|
||||
delete from ff_game_secret_key_currency where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
|
||||
<select id="findByGameSecretKeyCurrencyDTO" parameterType="com.ff.game.dto.GameSecretKeyCurrencyDTO" resultMap="GameSecretKeyCurrencyDTOResult">
|
||||
select gskc.currency, gskc.system_currency,gskc.game_secret_key_id,gsk.code ,gsk.`key`,gsk.platform,gskc.currency_id as platform_code
|
||||
from ff_game_secret_key gsk
|
||||
inner join ff_game_secret_key_currency gskc on gsk.id = gskc.game_secret_key_id
|
||||
<where>
|
||||
<if test="currency != null and currency != ''"> and gskc.currency = #{currency}</if>
|
||||
<if test="systemCurrency != null and systemCurrency != ''"> and gskc.system_currency = #{systemCurrency}</if>
|
||||
<if test="platformCode != null and platformCode != ''"> and gsk.platform = #{platformCode}</if>
|
||||
<if test="code != null and code != ''"> and gsk.code = #{code}</if>
|
||||
<if test="platformCodes != null and platformCodes.size() > 0">
|
||||
and gsk.platform
|
||||
<foreach collection="platformCodes" item="platformCode" open=" in (" separator="," close=")">
|
||||
#{platformCode}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="currencyId != null "> and gskc.currency_id = #{currencyId}</if>
|
||||
</where>
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<select id="findByGameSecretKeyCurrencyDTOList" parameterType="com.ff.game.dto.GameSecretKeyCurrencyDTO" resultMap="GameSecretKeyCurrencyDTOResult">
|
||||
select gskc.currency, gskc.system_currency,gskc.game_secret_key_id,gsk.code ,gsk.`key`,gsk.platform,gskc.currency_id as platform_code
|
||||
from ff_game_secret_key gsk
|
||||
inner join ff_game_secret_key_currency gskc on gsk.id = gskc.game_secret_key_id
|
||||
<where>
|
||||
<if test="currency != null and currency != ''"> and gskc.currency = #{currency}</if>
|
||||
<if test="systemCurrency != null and systemCurrency != ''"> and gskc.system_currency = #{systemCurrency}</if>
|
||||
<if test="platformCode != null and platformCode != ''"> and gsk.platform = #{platformCode}</if>
|
||||
<if test="code != null and code != ''"> and gsk.code = #{code}</if>
|
||||
<if test="platformCodes != null and platformCodes.size() > 0">
|
||||
and gsk.platform
|
||||
<foreach collection="platformCodes" item="platformCode" open=" in (" separator="," close=")">
|
||||
#{platformCode}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ff.game.mapper.GameSecretKeyLangMapper">
|
||||
|
||||
<resultMap type="GameSecretKeyLang" id="GameSecretKeyLangResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="gameSecretKeyId" column="game_secret_key_id" />
|
||||
<result property="lang" column="lang" />
|
||||
<result property="systemLangCode" column="system_lang_code" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ff.game.dto.GameSecretKeyLangDTO" id="GameSecretKeyLangDTOResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="gameSecretKeyId" column="game_secret_key_id" />
|
||||
<result property="lang" column="lang" />
|
||||
<result property="systemLangCode" column="system_lang_code" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="code" column="code" />
|
||||
<result property="key" column="key" />
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<sql id="selectGameSecretKeyLangVo">
|
||||
select id, game_secret_key_id, lang, system_lang_code, create_by, create_time, update_by, update_time from ff_game_secret_key_lang
|
||||
</sql>
|
||||
|
||||
<select id="selectGameSecretKeyLangList" parameterType="GameSecretKeyLang" resultMap="GameSecretKeyLangResult">
|
||||
<include refid="selectGameSecretKeyLangVo"/>
|
||||
<where>
|
||||
<if test="gameSecretKeyId != null "> and game_secret_key_id = #{gameSecretKeyId}</if>
|
||||
<if test="lang != null and lang != ''"> and lang = #{lang}</if>
|
||||
<if test="systemLangCode != null and systemLangCode != ''"> and system_lang_code = #{systemLangCode}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGameSecretKeyLangById" parameterType="Long" resultMap="GameSecretKeyLangResult">
|
||||
<include refid="selectGameSecretKeyLangVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertGameSecretKeyLang" parameterType="GameSecretKeyLang">
|
||||
insert into ff_game_secret_key_lang
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="gameSecretKeyId != null">game_secret_key_id,</if>
|
||||
<if test="lang != null and lang != ''">lang,</if>
|
||||
<if test="systemLangCode != null">system_lang_code,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="gameSecretKeyId != null">#{gameSecretKeyId},</if>
|
||||
<if test="lang != null and lang != ''">#{lang},</if>
|
||||
<if test="systemLangCode != null">#{systemLangCode},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateGameSecretKeyLang" parameterType="GameSecretKeyLang">
|
||||
update ff_game_secret_key_lang
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="gameSecretKeyId != null">game_secret_key_id = #{gameSecretKeyId},</if>
|
||||
<if test="lang != null and lang != ''">lang = #{lang},</if>
|
||||
<if test="systemLangCode != null">system_lang_code = #{systemLangCode},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteGameSecretKeyLangById" parameterType="Long">
|
||||
delete from ff_game_secret_key_lang where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteGameSecretKeyLangByIds" parameterType="String">
|
||||
delete from ff_game_secret_key_lang where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="findGameSecretKeyLangDTO" parameterType="com.ff.game.dto.GameSecretKeyLangDTO" resultMap="GameSecretKeyLangDTOResult">
|
||||
select gskl.lang, gskl.system_lang_code,gsk.code ,gsk.`key`,gskl.game_secret_key_id
|
||||
from ff_game_secret_key gsk
|
||||
inner join ff_game_secret_key_lang gskl on gsk.id = gskl.game_secret_key_id
|
||||
<where>
|
||||
<if test="lang != null and lang != ''"> and gskl.lang = #{lang}</if>
|
||||
<if test="systemLangCode != null and systemLangCode != ''"> and gskl.system_lang_code = #{systemLangCode}</if>
|
||||
<if test="platformCode != null and platformCode != ''"> and gsk.platform = #{platformCode}</if>
|
||||
<if test="code != null and code != ''"> and gsk.code = #{code}</if>
|
||||
</where>
|
||||
|
||||
limit 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ff.game.mapper.GameSecretKeyMapper">
|
||||
|
||||
<resultMap type="GameSecretKey" id="GameSecretKeyResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="platform" column="platform" />
|
||||
<result property="providerCode" column="provider_code" />
|
||||
<result property="password" column="password" />
|
||||
<result property="code" column="code" />
|
||||
<result property="key" column="key" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectGameSecretKeyVo">
|
||||
select id, platform,provider_code,password, code, `key`, create_by, create_time, update_by, update_time from ff_game_secret_key
|
||||
</sql>
|
||||
|
||||
<select id="selectGameSecretKeyList" parameterType="GameSecretKey" resultMap="GameSecretKeyResult">
|
||||
<include refid="selectGameSecretKeyVo"/>
|
||||
<where>
|
||||
<if test="platform != null and platform != ''"> and platform = #{platform}</if>
|
||||
<if test="providerCode != null and providerCode != ''"> and provider_code = #{providerCode}</if>
|
||||
<if test="password != null and password != ''"> and password = #{password}</if>
|
||||
<if test="code != null and code != ''"> and code = #{code}</if>
|
||||
<if test="key != null and key != ''"> and key = #{key}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGameSecretKeyById" parameterType="Long" resultMap="GameSecretKeyResult">
|
||||
<include refid="selectGameSecretKeyVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectGameSecretKeyByCode" parameterType="String" resultMap="GameSecretKeyResult">
|
||||
<include refid="selectGameSecretKeyVo"/>
|
||||
where code = #{code}
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<insert id="insertGameSecretKey" parameterType="GameSecretKey">
|
||||
insert into ff_game_secret_key
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="platform != null and platform != ''">platform,</if>
|
||||
<if test="code != null and code != ''">provider_code,</if>
|
||||
<if test="password != null and password != ''">password,</if>
|
||||
<if test="code != null and code != ''">code,</if>
|
||||
<if test="key != null and key != ''">key,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="platform != null and platform != ''">#{platform},</if>
|
||||
<if test="code != null and code != ''">#{providerCode},</if>
|
||||
<if test="password != null and password != ''">#{password},</if>
|
||||
<if test="code != null and code != ''">#{code},</if>
|
||||
<if test="key != null and key != ''">#{key},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateGameSecretKey" parameterType="GameSecretKey">
|
||||
update ff_game_secret_key
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="platform != null and platform != ''">platform = #{platform},</if>
|
||||
<if test="code != null and code != ''">provider_code = #{providerCode},</if>
|
||||
<if test="password != null and password != ''">password = #{password},</if>
|
||||
<if test="code != null and code != ''">code = #{code},</if>
|
||||
<if test="key != null and key != ''">key = #{key},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteGameSecretKeyById" parameterType="Long">
|
||||
delete from ff_game_secret_key where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteGameSecretKeyByIds" parameterType="String">
|
||||
delete from ff_game_secret_key where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ff.game.mapper.PlatformMapper">
|
||||
|
||||
<resultMap type="Platform" id="PlatformResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="sortNo" column="sort_no" />
|
||||
<result property="platformCode" column="platform_code" />
|
||||
<result property="platformName" column="platform_name" />
|
||||
<result property="platformInfo" column="platform_info" typeHandler="com.ff.base.handler.JsonListHandler" javaType="com.ff.game.domain.PlatformInfo"/>
|
||||
<result property="urlInfo" column="url_info" typeHandler="com.ff.base.handler.JsonHandler" javaType="com.ff.game.domain.UrlInfo"/>
|
||||
<result property="keyInfo" column="key_info" typeHandler="com.ff.base.handler.JsonListHandler" javaType="com.ff.game.domain.KeyInfo"/>
|
||||
<result property="langInfo" column="lang_info" typeHandler="com.ff.base.handler.JsonHandler" javaType="com.ff.game.domain.LangInfo"/>
|
||||
<result property="currencyInfo" column="currency_info" typeHandler="com.ff.base.handler.JsonHandler" javaType="com.ff.game.domain.CurrencyInfo"/>
|
||||
<result property="extInfo" column="ext_info" typeHandler="com.ff.base.handler.JsonHandler" javaType="com.ff.game.domain.ExtInfo"/>
|
||||
|
||||
<result property="stopStatus" column="stop_status" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectVO">
|
||||
select * from ff_platform
|
||||
</sql>
|
||||
|
||||
<select id="selectList" parameterType="Platform" resultMap="PlatformResult">
|
||||
<include refid="selectVO"/>
|
||||
<where>
|
||||
<if test="platformCode != null and platformCode != ''"> and platform_code = #{platformCode}</if>
|
||||
<if test="platformName != null and platformName != ''"> and instr(platform_name,#{platformName}) > 0</if>
|
||||
<if test="stopStatus != null"> and stop_status = #{stopStatus}</if>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectByPlatformCode" parameterType="String" resultMap="PlatformResult">
|
||||
<include refid="selectVO"/>
|
||||
where platform_code = #{platformCode}
|
||||
</select>
|
||||
<insert id="insertPlatform" parameterType="Platform">
|
||||
insert into ff_platform
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="sortNo != null">sort_no,</if>
|
||||
<if test="platformCode != null and platformCode != ''">platform_code,</if>
|
||||
<if test="platformName != null and platformName != ''">platform_name,</if>
|
||||
<if test="platformInfo != null and platformInfo != ''">platform_info,</if>
|
||||
<if test="urlInfo != null and urlInfo != ''">url_info,</if>
|
||||
|
||||
<if test="keyInfo != null and keyInfo != ''">key_info,</if>
|
||||
<if test="langInfo != null and langInfo != ''">lang_info,</if>
|
||||
<if test="currencyInfo != null and currencyInfo != ''">currency_info,</if>
|
||||
<if test="extInfo != null and extInfo != ''">ext_info,</if>
|
||||
|
||||
<if test="stopStatus != null">stop_status,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="sortNo != null">#{sortNo}</if>
|
||||
<if test="platformCode != null and platformCode != ''">#{platformCode},</if>
|
||||
<if test="platformName != null and platformName != ''">#{platformName},</if>
|
||||
<if test="platformInfo != null and platformInfo != ''">#{platformInfo},</if>
|
||||
<if test="urlInfo != null and urlInfo != ''">#{urlInfo},</if>
|
||||
<if test="keyInfo != null and keyInfo != ''">#{keyInfo},</if>
|
||||
<if test="langInfo != null and langInfo != ''">#{langInfo},</if>
|
||||
<if test="currencyInfo != null and currencyInfo != ''">#{currencyInfo},</if>
|
||||
<if test="stopStatus != null">#{stopStatus},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updatePlatform" parameterType="Platform">
|
||||
update ff_platform
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="sortNo != null">sort_no = #{sortNo},</if>
|
||||
<if test="platformCode != null and platformCode != ''">platform_code = #{platformCode},</if>
|
||||
<if test="platformName != null and platformName != ''">platform_name = #{platformName},</if>
|
||||
<if test="platformInfo != null and platformInfo != ''">platform_info = #{platformInfo},</if>
|
||||
<if test="urlInfo != null and urlInfo != ''">url_info = #{urlInfo},</if>
|
||||
|
||||
<if test="keyInfo != null and keyInfo != ''">key_info = #{keyInfo},</if>
|
||||
<if test="langInfo != null and langInfo != ''">lang_info = #{langInfo},</if>
|
||||
<if test="currencyInfo != null and currencyInfo != ''">currency_info = #{currencyInfo},</if>
|
||||
<if test="extInfo != null and extInfo != ''">ext_info = #{extInfo},</if>
|
||||
|
||||
<if test="stopStatus != null">stop_status = #{stopStatus},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteById" parameterType="Long">
|
||||
delete from ff_platform where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteByIds" parameterType="String">
|
||||
delete from ff_platform where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue