Merge branch 'main' into main-p
commit
8a6a70b687
|
@ -6,6 +6,7 @@ import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Pattern;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +22,7 @@ public class MemberCreateApiRequest implements Serializable{
|
||||||
|
|
||||||
@NotBlank(message = "account不能为空")
|
@NotBlank(message = "account不能为空")
|
||||||
@Length(max = 64, message = "account长度不能超过64个字符")
|
@Length(max = 64, message = "account长度不能超过64个字符")
|
||||||
|
@Pattern(regexp = "^[a-z0-9]+$", message = "account只能包含小写字母和数字")
|
||||||
private String account;
|
private String account;
|
||||||
|
|
||||||
/** 平台编码 */
|
/** 平台编码 */
|
||||||
|
|
|
@ -94,6 +94,6 @@ public interface NGClient {
|
||||||
* @param headerMap 标题映射
|
* @param headerMap 标题映射
|
||||||
* @return {@link ApiNGResponseDTO }<{@link ApiGameBetRecordPageResponseDTO }>
|
* @return {@link ApiNGResponseDTO }<{@link ApiGameBetRecordPageResponseDTO }>
|
||||||
*/
|
*/
|
||||||
@Post(url = "server/recordAll")
|
@Post(url = "server/recordHistory")
|
||||||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> getBetRecordByTime(@JSONBody Map<String, Object> parameters, @Header Map<String, String> headerMap);
|
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> getBetRecordByTime(@JSONBody Map<String, Object> parameters, @Header Map<String, String> headerMap);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,10 @@ import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.text.SimpleDateFormat;
|
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.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
@ -499,6 +503,16 @@ public class GamesPGServiceImpl implements IGamesService {
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
|
|
||||||
|
String startTime = DateTimeFormatter
|
||||||
|
.ofPattern("yyyy-MM-dd HH:mm:ss")
|
||||||
|
.withZone(ZoneId.of("Asia/Shanghai"))
|
||||||
|
.format(Instant.ofEpochMilli(betRecordByTimeDTO.getStartTime()));
|
||||||
|
|
||||||
|
String endTime = DateTimeFormatter
|
||||||
|
.ofPattern("yyyy-MM-dd HH:mm:ss")
|
||||||
|
.withZone(ZoneId.of("Asia/Shanghai"))
|
||||||
|
.format(Instant.ofEpochMilli(betRecordByTimeDTO.getEndTime()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
|
betRecordByTimeDTO.setAgentId(currencyDTO.getCode());
|
||||||
|
@ -509,9 +523,11 @@ public class GamesPGServiceImpl implements IGamesService {
|
||||||
paramsMap.put("currency", currencyDTO.getCurrency());
|
paramsMap.put("currency", currencyDTO.getCurrency());
|
||||||
paramsMap.put("pageNo", pageNo);
|
paramsMap.put("pageNo", pageNo);
|
||||||
paramsMap.put("pageSize", pageSize);
|
paramsMap.put("pageSize", pageSize);
|
||||||
|
paramsMap.put("startTime", startTime);
|
||||||
|
paramsMap.put("endTime",endTime);
|
||||||
Map<String, String> key = this.getKey(betRecordByTimeDTO);
|
Map<String, String> key = this.getKey(betRecordByTimeDTO);
|
||||||
|
|
||||||
SleepUtil.sleep(6000);
|
|
||||||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTime = ngClient.getBetRecordByTime(paramsMap, key);
|
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTime = ngClient.getBetRecordByTime(paramsMap, key);
|
||||||
|
|
||||||
if (this.getIsSuccess(betRecordByTime.getCode())) {
|
if (this.getIsSuccess(betRecordByTime.getCode())) {
|
||||||
|
@ -539,6 +555,9 @@ public class GamesPGServiceImpl implements IGamesService {
|
||||||
paramMap.put("currency", currencyDTO.getCurrency());
|
paramMap.put("currency", currencyDTO.getCurrency());
|
||||||
paramMap.put("pageNo", pageNoAtomic.get());
|
paramMap.put("pageNo", pageNoAtomic.get());
|
||||||
paramMap.put("pageSize", pageSize);
|
paramMap.put("pageSize", pageSize);
|
||||||
|
paramMap.put("startTime", startTime);
|
||||||
|
paramMap.put("endTime", endTime);
|
||||||
|
SleepUtil.sleep(10000);
|
||||||
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key);
|
ApiNGResponseDTO<ApiGameBetRecordPageResponseDTO> betRecordByTimePage = ngClient.getBetRecordByTime(paramMap, key);
|
||||||
data = betRecordByTimePage.getData();
|
data = betRecordByTimePage.getData();
|
||||||
//数据组装
|
//数据组装
|
||||||
|
|
|
@ -124,7 +124,7 @@ public class MemberServiceImpl implements IMemberService
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Member selectMemberByGameAccount(String gameAccount) {
|
public Member selectMemberByGameAccount(String gameAccount) {
|
||||||
return memberMapper.selectMemberByGameAccount(gameAccount);
|
return memberMapper.selectMemberByGameAccount(gameAccount.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ff.quartz.task;
|
package com.ff.quartz.task;
|
||||||
|
|
||||||
import com.ff.base.constant.Constants;
|
import com.ff.base.constant.Constants;
|
||||||
|
import com.ff.base.core.redis.RedisCache;
|
||||||
import com.ff.base.datasource.DynamicDataSourceContextHolder;
|
import com.ff.base.datasource.DynamicDataSourceContextHolder;
|
||||||
import com.ff.base.enums.GamePlatforms;
|
import com.ff.base.enums.GamePlatforms;
|
||||||
import com.ff.base.enums.NGPlatforms;
|
import com.ff.base.enums.NGPlatforms;
|
||||||
|
@ -32,6 +33,7 @@ import org.springframework.security.core.parameters.P;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
@ -63,7 +65,7 @@ public class GameTask {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private NGClient ngClient;
|
private NGClient ngClient;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IGameExchangeMoneyService gameExchangeMoneyService;
|
private IGameExchangeMoneyService gameExchangeMoneyService;
|
||||||
|
|
||||||
|
@ -71,7 +73,11 @@ public class GameTask {
|
||||||
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
private IGameSecretKeyCurrencyService gameSecretKeyCurrencyService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IMemberService memberService;
|
private IMemberService memberService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入游戏投注详细信息
|
* 插入游戏投注详细信息
|
||||||
*/
|
*/
|
||||||
|
@ -83,47 +89,50 @@ public class GameTask {
|
||||||
Long endTime = DateUtils.getNowDate();
|
Long endTime = DateUtils.getNowDate();
|
||||||
|
|
||||||
|
|
||||||
for (String gameKey : gamesService.keySet()) {
|
for (String gameKey : gamesService.keySet()) {
|
||||||
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
String platformCode = gameKey.replace(Constants.SERVICE, "");
|
||||||
if (NGPlatforms.exists(platformCode)) {
|
if (NGPlatforms.exists(platformCode)) {
|
||||||
continue;
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入游戏ngbetting详细信息
|
* 插入游戏ngbetting详细信息
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public void insertGameNGBettingDetails() {
|
public void insertGameNGBettingDetails(Integer backTime) {
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
//捞取指定分钟前的数据
|
||||||
|
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), backTime);
|
||||||
|
Long endTime = DateUtils.getNowDate();
|
||||||
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
BetRecordByTimeDTO betRecordByTimeDTO = new BetRecordByTimeDTO();
|
||||||
|
betRecordByTimeDTO.setStartTime(startTime);
|
||||||
|
betRecordByTimeDTO.setEndTime(endTime);
|
||||||
gamesService.get(NGPlatforms.PG.getPlatform() + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO);
|
gamesService.get(NGPlatforms.PG.getPlatform() + Constants.SERVICE).getBetRecordByTime(betRecordByTimeDTO);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("查询 NG 投注记录失败,错误信息 {}", e);
|
log.error("查询 NG 投注记录失败,错误信息 {}", e);
|
||||||
|
@ -137,27 +146,27 @@ public class GameTask {
|
||||||
* 插入免费游戏局数情况
|
* 插入免费游戏局数情况
|
||||||
*/
|
*/
|
||||||
public void insertFreeSpinDashflow() {
|
public void insertFreeSpinDashflow() {
|
||||||
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -70);
|
Long startTime = DateUtils.addOrSubtractMinutes(DateUtils.getNowDate(), -70);
|
||||||
for (String gameKey : gamesService.keySet()) {
|
for (String gameKey : gamesService.keySet()) {
|
||||||
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(gameKey.replace(Constants.SERVICE, "")).build());
|
List<GameSecretKey> gameSecretKeys = gameSecretKeyService.selectGameSecretKeyList(GameSecretKey.builder().platform(gameKey.replace(Constants.SERVICE, "")).build());
|
||||||
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
for (GameSecretKey gameSecretKey : gameSecretKeys) {
|
||||||
try {
|
try {
|
||||||
GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO = new GetFreeSpinDashflowRequestDTO();
|
GetFreeSpinDashflowRequestDTO getFreeSpinDashflowRequestDTO = new GetFreeSpinDashflowRequestDTO();
|
||||||
getFreeSpinDashflowRequestDTO.setStartTime(startTime);
|
getFreeSpinDashflowRequestDTO.setStartTime(startTime);
|
||||||
getFreeSpinDashflowRequestDTO.setAgentId(gameSecretKey.getCode());
|
getFreeSpinDashflowRequestDTO.setAgentId(gameSecretKey.getCode());
|
||||||
getFreeSpinDashflowRequestDTO.setAgentKey(gameSecretKey.getKey());
|
getFreeSpinDashflowRequestDTO.setAgentKey(gameSecretKey.getKey());
|
||||||
gamesService.get(gameKey).getFreeSpinDashflow(getFreeSpinDashflowRequestDTO);
|
gamesService.get(gameKey).getFreeSpinDashflow(getFreeSpinDashflowRequestDTO);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("查询 币种 {} 免费游戏投注记录失败,错误信息 {}", gameSecretKey.getCode(), e.getMessage());
|
log.error("查询 币种 {} 免费游戏投注记录失败,错误信息 {}", gameSecretKey.getCode(), e.getMessage());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateGameExchangeMoney() {
|
public void updateGameExchangeMoney() {
|
||||||
List<GameExchangeMoney> gameExchangeMoneyList = gameExchangeMoneyService.selectGameExchangeMoneyList(GameExchangeMoney.builder().status(StatusType.IN_PROGRESS.getValue()).build());
|
List<GameExchangeMoney> gameExchangeMoneyList = gameExchangeMoneyService.selectGameExchangeMoneyList(GameExchangeMoney.builder().status(StatusType.IN_PROGRESS.getValue()).build());
|
||||||
for (GameExchangeMoney exchangeMoney : gameExchangeMoneyList) {
|
for (GameExchangeMoney exchangeMoney : gameExchangeMoneyList) {
|
||||||
try {
|
try {
|
||||||
|
@ -172,14 +181,14 @@ public class GameTask {
|
||||||
exchangeTransferStatusRequestDTO.setOrderId(exchangeMoney.getTransactionId());
|
exchangeTransferStatusRequestDTO.setOrderId(exchangeMoney.getTransactionId());
|
||||||
exchangeTransferStatusRequestDTO.setAgentId(gameSecretKey.getCode());
|
exchangeTransferStatusRequestDTO.setAgentId(gameSecretKey.getCode());
|
||||||
exchangeTransferStatusRequestDTO.setAgentKey(gameSecretKey.getKey());
|
exchangeTransferStatusRequestDTO.setAgentKey(gameSecretKey.getKey());
|
||||||
gamesService.get(exchangeMoney.getPlatformCode()+Constants.SERVICE).exchangeTransferStatus(exchangeTransferStatusRequestDTO);
|
gamesService.get(exchangeMoney.getPlatformCode() + Constants.SERVICE).exchangeTransferStatus(exchangeTransferStatusRequestDTO);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("查询 更新交易记录失败,错误信息 {}", e);
|
log.error("查询 更新交易记录失败,错误信息 {}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue