diff --git a/ff-admin/pom.xml b/ff-admin/pom.xml
index 94f85f1..c742d67 100644
--- a/ff-admin/pom.xml
+++ b/ff-admin/pom.xml
@@ -87,11 +87,8 @@
socket.io-client
1.0.0
-
- com.dtflys.forest
- forest-spring-boot-starter
- 1.6.3
-
+
+
diff --git a/ff-admin/src/main/java/com/ff/FFApplication.java b/ff-admin/src/main/java/com/ff/FFApplication.java
index 3a511ff..a4bc75d 100644
--- a/ff-admin/src/main/java/com/ff/FFApplication.java
+++ b/ff-admin/src/main/java/com/ff/FFApplication.java
@@ -1,6 +1,5 @@
package com.ff;
-import com.ff.base.config.IdGeneratorUtil;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
@@ -22,10 +21,9 @@ import org.springframework.security.authentication.dao.DaoAuthenticationProvider
@MapperScan({"com.ff.base.system.mapper","com.ff.quartz.mapper","com.ff.gen.mapper"})
@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = DaoAuthenticationProvider.class)})
@EnableAsync
-public class FFApplication implements CommandLineRunner
+public class FFApplication
{
- @Autowired
- private IdGeneratorUtil idGeneratorUtil;
+
public static void main(String[] args)
@@ -37,8 +35,5 @@ public class FFApplication implements CommandLineRunner
}
- @Override
- public void run(String... args) throws Exception {
- idGeneratorUtil.init();
- }
+
}
diff --git a/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java b/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java
new file mode 100644
index 0000000..2392825
--- /dev/null
+++ b/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java
@@ -0,0 +1,124 @@
+package com.ff.agent.contoller;
+
+
+import cn.hutool.core.util.IdUtil;
+import com.ff.agent.dto.AgentTenantSecretKeyDTO;
+import com.ff.agent.request.AgentCreateTenantRequest;
+import com.ff.base.core.controller.BaseController;
+import com.ff.base.core.domain.AjaxResult;
+import com.ff.base.core.page.TableDataInfo;
+import com.ff.base.system.dto.TenantSecretKeyDTO;
+import com.ff.base.system.service.ISysDeptService;
+import com.ff.base.system.service.ISysRoleService;
+import com.ff.base.system.service.ISysUserService;
+import com.ff.base.utils.MessageUtils;
+import com.ff.base.utils.SecurityUtils;
+import com.ff.base.utils.bean.BeanUtils;
+import com.ff.base.utils.uuid.IdUtils;
+import com.ff.base.system.domain.TenantSecretKey;
+import com.ff.common.service.ITenantGameQuotaService;
+import com.ff.base.system.service.ITenantSecretKeyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * api控制器
+ *
+ * @author shi
+ * @date 2025/02/10
+ */
+@RestController
+@RequestMapping("/agent/tenant")
+@Slf4j
+public class AgentController extends BaseController {
+
+
+ @Resource
+ private ITenantSecretKeyService tenantSecretKeyService;
+
+ @Resource
+ private ITenantGameQuotaService tenantGameQuotaService;
+
+ @Resource
+ private ISysRoleService roleService;
+
+ @Resource
+ private ISysDeptService deptService;
+
+ @Resource
+ private ISysUserService userService;
+
+
+ /**
+ * 列表
+ *
+ * @param tenantSecretKeyDTO 租户密钥
+ * @return {@link TableDataInfo }
+ */
+ @GetMapping("/list")
+ @Transactional
+ @PreAuthorize("@ss.hasPermi('agent:tenant:list')")
+ public TableDataInfo list(TenantSecretKeyDTO tenantSecretKeyDTO) {
+ startPage();
+ tenantSecretKeyDTO.setAgentId(getUserId());
+ List tenantSecretKeys = tenantSecretKeyService.selectTenantSecretKeyDTOList(tenantSecretKeyDTO);
+ TableDataInfo dataTable = getDataTable(tenantSecretKeys);
+ List list=new ArrayList<>();
+ for (TenantSecretKey row : (List) dataTable.getRows()) {
+ AgentTenantSecretKeyDTO agentTenantSecretKeyDTO=new AgentTenantSecretKeyDTO();
+ BeanUtils.copyProperties(row, agentTenantSecretKeyDTO);
+ list.add(agentTenantSecretKeyDTO);
+ }
+ dataTable.setRows(list);
+
+ return dataTable;
+ }
+
+
+ /**
+ * 信息
+ *
+ * @return {@link AjaxResult }
+ */
+ @PostMapping("/create")
+ @Transactional
+ @PreAuthorize("@ss.hasPermi('agent:tenant:create')")
+ public AjaxResult createTenant(@Validated @RequestBody AgentCreateTenantRequest agentCreateTenantRequest) {
+
+ Assert.isTrue(CollectionUtils.isEmpty(tenantSecretKeyService.selectTenantSecretKeyList(TenantSecretKey.builder()
+ .tenantKey(agentCreateTenantRequest.getAccount())
+ .build())), MessageUtils.message("operation.tenant.account.already.used"));
+
+ Assert.isTrue(agentCreateTenantRequest.getPassword().equals(agentCreateTenantRequest.getConfirmPassword()),MessageUtils.message("operation.password.mismatch"));
+ //创建租户
+ TenantSecretKey tenantSecretKey = new TenantSecretKey();
+ tenantSecretKey.setAgentId(getUserId());
+ tenantSecretKey.setTenantKey(agentCreateTenantRequest.getAccount());
+ tenantSecretKey.setPassword(SecurityUtils.encryptPassword(agentCreateTenantRequest.getPassword()));
+ tenantSecretKey.setTenantSn(tenantSecretKeyService.generateTenantSn());
+ tenantSecretKey.setTenantSecret(IdUtils.simpleUUID());
+ tenantSecretKey.setDepositRatio(agentCreateTenantRequest.getDepositRatio());
+ tenantSecretKey.setTenantType(agentCreateTenantRequest.getTenantType());
+ tenantSecretKey.setCreateBy(getUsername());
+ tenantSecretKey.setTenantStatus(Boolean.TRUE);
+ int insertedTenantSecretKey = tenantSecretKeyService.insertTenantSecretKey(tenantSecretKey);
+
+
+ return toAjax(insertedTenantSecretKey);
+ }
+
+
+
+
+
+
+}
diff --git a/ff-admin/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java b/ff-admin/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java
new file mode 100644
index 0000000..277cfe5
--- /dev/null
+++ b/ff-admin/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java
@@ -0,0 +1,89 @@
+package com.ff.agent.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+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 java.math.BigDecimal;
+
+/**
+ * 用户租户密钥对象 ff_tenant_secret_key
+ *
+ * @author shi
+ * @date 2025-02-20
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class AgentTenantSecretKeyDTO extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键id */
+ private Long id;
+
+
+
+
+ /** 密码 */
+ @Excel(name = "密码")
+ @JsonIgnore
+ private String password;
+
+ /** 最后登录ip */
+ @Excel(name = "最后登录ip")
+ private String loginIp;
+
+ /** 最后登录时间 */
+ @Excel(name = "最后登录时间")
+ private Long loginData;
+
+
+
+ /** 租户key */
+ @Excel(name = "租户key")
+ private String tenantKey;
+
+ /** 代理id */
+ @Excel(name = "代理id")
+ private Long agentId;
+
+
+
+ /** 商户后缀 */
+ @Excel(name = "商户后缀")
+ @JsonIgnore
+ private String tenantSn;
+
+ /** 租户密钥 */
+ @Excel(name = "租户密钥")
+ @JsonIgnore
+ private String tenantSecret;
+
+ /** 租户状态 1正常 0停用 */
+ @Excel(name = "租户状态 1正常 0停用")
+ private Boolean tenantStatus;
+
+ /** 额度类型 TenantQuotaType 枚举 */
+ @Excel(name = "额度类型 TenantQuotaType 枚举")
+ private Integer quotaType;
+
+ /** 买分比例 */
+ @Excel(name = "买分比例")
+ private BigDecimal scoreRatio;
+
+ /** 租户类型 TenantType 枚举 */
+ @Excel(name = "租户类型 TenantType 枚举")
+ private Integer tenantType;
+
+ /** 透支比例 */
+ @Excel(name = "透支比例")
+ private BigDecimal depositRatio;
+
+
+}
diff --git a/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java b/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java
new file mode 100644
index 0000000..bc5f6d7
--- /dev/null
+++ b/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java
@@ -0,0 +1,58 @@
+package com.ff.agent.request;
+
+
+import com.ff.base.xss.Xss;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 代理创建租户
+ *
+ * @author shi
+ * @date 2025/02/20
+ */
+@Data
+public class AgentCreateTenantRequest implements Serializable {
+ private static final long serialVersionUID = -5561068216486978354L;
+
+
+ /**
+ * 账户
+ */
+ @Xss(message = "用户账号不能包含脚本字符")
+ @NotBlank(message = "用户账号不能为空")
+ @Size(min = 2, max = 30, message = "用户账号长度不能超过30个字符")
+ private String account;
+ /**
+ * 密码
+ */
+ @NotBlank(message = "密码不能为空")
+ @Size(min = 5, max = 20, message = "密码长度不能超过25个字符")
+ private String password;
+ /**
+ * 确认密码
+ */
+ @NotBlank(message = "确认密码不能为空")
+ @Size(min = 5, max = 20, message = "密码长度不能超过25个字符")
+ private String confirmPassword;
+
+
+ /** 租户类型 TenantType 枚举 */
+ @NotNull(message = "租户类型不能为空")
+ private Integer tenantType;
+
+ /** 信誉额度*/
+ private BigDecimal realBalance;
+
+ /** 透支比例 */
+ private BigDecimal depositRatio;
+
+
+
+
+}
diff --git a/ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java b/ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java
index a1ce566..b6f05d6 100644
--- a/ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java
+++ b/ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java
@@ -3,8 +3,8 @@ package com.ff.annotation;
import com.ff.base.constant.Constants;
import com.ff.config.KeyConfig;
import com.ff.base.utils.sign.Md5Utils;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.service.ITenantSecretKeyService;
+import com.ff.base.system.domain.TenantSecretKey;
+import com.ff.base.system.service.ITenantSecretKeyService;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiAgentController.java b/ff-admin/src/main/java/com/ff/api/controller/ApiAgentController.java
deleted file mode 100644
index 93abc61..0000000
--- a/ff-admin/src/main/java/com/ff/api/controller/ApiAgentController.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.ff.api.controller;
-
-
-import com.ff.annotation.CheckHeader;
-import com.ff.api.response.TenantInfoResponse;
-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.QuotaType;
-import com.ff.base.system.service.ISysDeptService;
-import com.ff.base.system.service.ISysRoleService;
-import com.ff.base.utils.SecurityUtils;
-import com.ff.base.utils.StringUtils;
-import com.ff.base.utils.bean.BeanUtils;
-import com.ff.common.domain.TenantGameQuota;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.service.ITenantGameQuotaService;
-import com.ff.common.service.ITenantSecretKeyService;
-import com.ff.config.KeyConfig;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * api控制器
- *
- * @author shi
- * @date 2025/02/10
- */
-@RestController
-@CheckHeader
-@RequestMapping("/api/agent")
-@Slf4j
-public class ApiAgentController extends BaseController {
-
-
- @Resource
- private ITenantSecretKeyService tenantSecretKeyService;
-
-
- @Resource
- private ISysRoleService roleService;
-
- @Resource
- private ISysDeptService deptService;
-
-//
-// /**
-// * 信息
-// *
-// * @return {@link AjaxResult }
-// */
-// @PostMapping("/create/tenant")
-// public AjaxResult createTenant(TenantSecretKey tenantSecretKey) {
-// roleService.selectRoleList(tenantSecretKey)
-// if (!userService.checkUserNameUnique(user))
-// {
-// return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
-// }
-// else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
-// {
-// return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
-// }
-// else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
-// {
-// return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-// }
-// user.setCreateBy(getUsername());
-// user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-// return toAjax(userService.insertUser(user));
-//
-// tenantSecretKey.setAgentId(getUserId());
-// tenantSecretKeyService.insertTenantSecretKey(tenantSecretKey);
-// return AjaxResult.success(tenantInfoResponse);
-// }
-
-}
diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java b/ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java
index 1292148..fe5c4af 100644
--- a/ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java
+++ b/ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java
@@ -12,12 +12,9 @@ import com.ff.base.core.page.TableDataInfo;
import com.ff.base.enums.*;
import com.ff.base.exception.base.ApiException;
import com.ff.base.exception.base.BaseException;
-import com.ff.base.utils.QuotaUtils;
import com.ff.base.utils.StringUtils;
import com.ff.base.utils.bean.BeanUtils;
-import com.ff.common.domain.TenantGameQuotaFlow;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.dto.BalanceChangesDTO;
+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;
diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiMemberController.java b/ff-admin/src/main/java/com/ff/api/controller/ApiMemberController.java
index ed5bd78..05d2925 100644
--- a/ff-admin/src/main/java/com/ff/api/controller/ApiMemberController.java
+++ b/ff-admin/src/main/java/com/ff/api/controller/ApiMemberController.java
@@ -1,7 +1,6 @@
package com.ff.api.controller;
-import cn.hutool.core.bean.BeanUtil;
import com.ff.annotation.CheckHeader;
import com.ff.api.request.MemberCreateApiRequest;
import com.ff.api.request.MemberInfoAllApiRequest;
@@ -14,9 +13,8 @@ import com.ff.base.core.domain.AjaxResult;
import com.ff.base.enums.ErrorCode;
import com.ff.base.exception.base.ApiException;
import com.ff.base.exception.base.BaseException;
-import com.ff.base.manager.AsyncManager;
import com.ff.base.utils.StringUtils;
-import com.ff.common.domain.TenantSecretKey;
+import com.ff.base.system.domain.TenantSecretKey;
import com.ff.config.KeyConfig;
import com.ff.game.api.IGamesService;
import com.ff.game.api.request.*;
@@ -42,7 +40,6 @@ import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Future;
@@ -99,14 +96,7 @@ public class ApiMemberController extends BaseController {
ApiException.notNull(gameSecretKey, ErrorCode.CURRENCY_NOT_EXIST.getCode());
String gameAccount = StringUtils.addSuffix(memberCreateApiRequest.getAccount(), memberCreateApiRequest.getCurrencyCode() + tenantSecretKey.getTenantSn());
- //向第三方注册账号
- CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder()
- .account(gameAccount)
- .agentId(gameSecretKey.getCode())
- .agentKey(gameSecretKey.getKey())
- .build();
- Boolean result = iGamesService.createMember(gamesBaseRequestDTO);
- Assert.isTrue(result, "建立游戏账号失败");
+
List members = memberService.selectMemberList(Member.builder()
.tenantKey(tenantSecretKey.getTenantKey()).gameAccount(gameAccount).build());
@@ -119,8 +109,17 @@ public class ApiMemberController extends BaseController {
.platformCode(memberCreateApiRequest.getPlatformCode())
.currencyCode(memberCreateApiRequest.getCurrencyCode())
.build();
- return toAjax(memberService.insertMember(member));
+ int insertMember = memberService.insertMember(member);
+ Assert.isTrue(insertMember>0, "建立游戏账号失败");
}
+ //向第三方注册账号
+ CreateMemberRequestDTO gamesBaseRequestDTO = CreateMemberRequestDTO.builder()
+ .account(gameAccount)
+ .agentId(gameSecretKey.getCode())
+ .agentKey(gameSecretKey.getKey())
+ .build();
+ Boolean result = iGamesService.createMember(gamesBaseRequestDTO);
+ Assert.isTrue(result, "建立游戏账号失败");
return toAjax(Boolean.TRUE);
}
@@ -152,8 +151,8 @@ public class ApiMemberController extends BaseController {
.agentKey(gameSecretKey.getKey())
.build();
MemberInfoResponseDTO memberInfo = iGamesService.getMemberInfo(gamesBaseRequestDTO);
- MemberInfoResponse memberInfoResponse=new MemberInfoResponse();
- BeanUtils.copyProperties(memberInfo,memberInfoResponse);
+ MemberInfoResponse memberInfoResponse = new MemberInfoResponse();
+ BeanUtils.copyProperties(memberInfo, memberInfoResponse);
return AjaxResult.success(memberInfoResponse);
}
@@ -226,6 +225,4 @@ public class ApiMemberController extends BaseController {
}
-
-
}
diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiTenantController.java b/ff-admin/src/main/java/com/ff/api/controller/ApiTenantController.java
index e7f4cae..c9d245c 100644
--- a/ff-admin/src/main/java/com/ff/api/controller/ApiTenantController.java
+++ b/ff-admin/src/main/java/com/ff/api/controller/ApiTenantController.java
@@ -8,7 +8,7 @@ import com.ff.base.core.domain.AjaxResult;
import com.ff.base.enums.QuotaType;
import com.ff.base.utils.bean.BeanUtils;
import com.ff.common.domain.TenantGameQuota;
-import com.ff.common.domain.TenantSecretKey;
+import com.ff.base.system.domain.TenantSecretKey;
import com.ff.common.service.ITenantGameQuotaService;
import com.ff.config.KeyConfig;
import lombok.extern.slf4j.Slf4j;
diff --git a/ff-admin/src/main/java/com/ff/api/request/AgentCreateTenant.java b/ff-admin/src/main/java/com/ff/api/request/AgentCreateTenant.java
deleted file mode 100644
index 8a8ffe6..0000000
--- a/ff-admin/src/main/java/com/ff/api/request/AgentCreateTenant.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.ff.api.request;
-
-
-import com.ff.base.annotation.Excel;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-/**
- * 代理创建租户
- *
- * @author shi
- * @date 2025/02/20
- */
-@Data
-public class AgentCreateTenant implements Serializable {
- private static final long serialVersionUID = -5561068216486978354L;
-
-
- /**
- * 账户
- */
- private String account;
- /**
- * 密码
- */
- private String password;
- /**
- * 确认密码
- */
- private String confirmPassword;
-
- /** 额度类型 TenantQuotaType 枚举 */
- private Integer quotaType;
-
- /** 买分比例 */
- @Excel(name = "买分比例")
- private BigDecimal scoreRatio;
-
- /** 租户类型 TenantType 枚举 */
- private Integer tenantType;
-
- /** 透支比例 */
- private BigDecimal depositRatio;
-}
diff --git a/ff-admin/src/main/java/com/ff/common/controller/TenantSecretKeyController.java b/ff-admin/src/main/java/com/ff/common/controller/TenantSecretKeyController.java
index 5d60d8a..5e5b7b8 100644
--- a/ff-admin/src/main/java/com/ff/common/controller/TenantSecretKeyController.java
+++ b/ff-admin/src/main/java/com/ff/common/controller/TenantSecretKeyController.java
@@ -16,8 +16,8 @@ import com.ff.base.annotation.Log;
import com.ff.base.core.controller.BaseController;
import com.ff.base.core.domain.AjaxResult;
import com.ff.base.enums.BusinessType;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.service.ITenantSecretKeyService;
+import com.ff.base.system.domain.TenantSecretKey;
+import com.ff.base.system.service.ITenantSecretKeyService;
import com.ff.base.utils.poi.ExcelUtil;
import com.ff.base.core.page.TableDataInfo;
diff --git a/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java b/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java
index d1fcda1..764e1de 100644
--- a/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java
+++ b/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java
@@ -1,6 +1,8 @@
package com.ff.common.domain;
import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableId;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
@@ -23,6 +25,7 @@ public class TenantGameQuota extends BaseEntity
private static final long serialVersionUID = 1L;
/** 主键id */
+
private Long id;
/** 租户key */
diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java b/ff-admin/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java
index 45acbf0..545bf81 100644
--- a/ff-admin/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.common.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +55,7 @@ public class CurrencyServiceImpl implements ICurrencyService
@Override
public int insertCurrency(Currency currency)
{
+ currency.setId(IdUtil.getSnowflakeNextId());
currency.setCreateTime(DateUtils.getNowDate());
return currencyMapper.insertCurrency(currency);
}
diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/LangServiceImpl.java b/ff-admin/src/main/java/com/ff/common/service/impl/LangServiceImpl.java
index 28b62b6..3e78305 100644
--- a/ff-admin/src/main/java/com/ff/common/service/impl/LangServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/common/service/impl/LangServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.common.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +55,7 @@ public class LangServiceImpl implements ILangService
@Override
public int insertLang(Lang lang)
{
+ lang.setId(IdUtil.getSnowflakeNextId());
lang.setCreateTime(DateUtils.getNowDate());
return langMapper.insertLang(lang);
}
diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java b/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java
index 884d714..4c4f790 100644
--- a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java
@@ -3,6 +3,7 @@ package com.ff.common.service.impl;
import java.math.BigDecimal;
import java.util.List;
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,6 +52,7 @@ public class TenantGameQuotaFlowServiceImpl implements ITenantGameQuotaFlowServi
*/
@Override
public int insertTenantGameQuotaFlow(TenantGameQuotaFlow tenantGameQuotaFlow) {
+ tenantGameQuotaFlow.setId(IdUtil.getSnowflakeNextId());
tenantGameQuotaFlow.setCreateTime(DateUtils.getNowDate());
return tenantGameQuotaFlowMapper.insertTenantGameQuotaFlow(tenantGameQuotaFlow);
}
diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java b/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java
index e731a55..1883275 100644
--- a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java
@@ -5,23 +5,23 @@ import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
+import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import com.ff.base.constant.Constants;
import com.ff.base.enums.*;
import com.ff.base.exception.base.ApiException;
import com.ff.base.utils.DateUtils;
-import com.ff.base.utils.NumberUtils;
import com.ff.base.utils.QuotaUtils;
import com.ff.base.utils.StringUtils;
import com.ff.common.domain.TenantGameQuotaFlow;
import com.ff.common.domain.TenantQuotaExchange;
-import com.ff.common.domain.TenantSecretKey;
+import com.ff.base.system.domain.TenantSecretKey;
import com.ff.common.dto.BalanceChangesDTO;
import com.ff.common.dto.BalanceRealChangesDTO;
import com.ff.common.dto.GameBalanceExchange;
import com.ff.common.service.ITenantGameQuotaFlowService;
import com.ff.common.service.ITenantQuotaExchangeService;
-import com.ff.common.service.ITenantSecretKeyService;
+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;
@@ -34,7 +34,6 @@ import com.ff.common.mapper.TenantGameQuotaMapper;
import com.ff.common.domain.TenantGameQuota;
import com.ff.common.service.ITenantGameQuotaService;
import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
@@ -105,6 +104,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService {
*/
@Override
public int insertTenantGameQuota(TenantGameQuota tenantGameQuota) {
+ tenantGameQuota.setId(IdUtil.getSnowflakeNextId());
tenantGameQuota.setCreateTime(DateUtils.getNowDate());
return tenantGameQuotaMapper.insertTenantGameQuota(tenantGameQuota);
}
diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java b/ff-admin/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java
index ddc8126..9cf1743 100644
--- a/ff-admin/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.common.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -65,6 +67,7 @@ public class TenantQuotaExchangeServiceImpl implements ITenantQuotaExchangeServi
@Override
public int insertTenantQuotaExchange(TenantQuotaExchange tenantQuotaExchange)
{
+ tenantQuotaExchange.setId(IdUtil.getSnowflakeNextId());
tenantQuotaExchange.setCreateTime(DateUtils.getNowDate());
return tenantQuotaExchangeMapper.insertTenantQuotaExchange(tenantQuotaExchange);
}
diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantSecretKeyServiceImpl.java b/ff-admin/src/main/java/com/ff/common/service/impl/TenantSecretKeyServiceImpl.java
deleted file mode 100644
index 657e581..0000000
--- a/ff-admin/src/main/java/com/ff/common/service/impl/TenantSecretKeyServiceImpl.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.ff.common.service.impl;
-
-import java.util.List;
-import com.ff.base.utils.DateUtils;
-import com.ff.base.utils.NumberUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ff.common.mapper.TenantSecretKeyMapper;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.service.ITenantSecretKeyService;
-import org.springframework.util.CollectionUtils;
-
-/**
- * 用户租户密钥Service业务层处理
- *
- * @author shi
- * @date 2025-02-11
- */
-@Service
-public class TenantSecretKeyServiceImpl implements ITenantSecretKeyService
-{
- @Autowired
- private TenantSecretKeyMapper tenantSecretKeyMapper;
-
- /**
- * 查询用户租户密钥
- *
- * @param id 用户租户密钥主键
- * @return 用户租户密钥
- */
- @Override
- public TenantSecretKey selectTenantSecretKeyById(Long id)
- {
- return tenantSecretKeyMapper.selectTenantSecretKeyById(id);
- }
-
-
- /**
- * 生成租户sn
- *
- * @return {@link String }
- */
- @Override
- public synchronized String generateTenantSn() {
- String sn = NumberUtils.generateRandomCode();
- while (!CollectionUtils.isEmpty(tenantSecretKeyMapper.selectTenantSecretKeyList(TenantSecretKey.builder()
- .tenantSn(sn)
- .build()))) {
- sn = NumberUtils.generateRandomCode();
- }
- return sn;
- }
-
- /**
- * 按租户密钥选择租户密钥
- *
- * @param tenantKey 租户密钥
- * @return {@link TenantSecretKey }
- */
- @Override
- public TenantSecretKey selectTenantSecretKeyByTenantKey(String tenantKey) {
- return tenantSecretKeyMapper.selectTenantSecretKeyByTenantKey(tenantKey);
- }
-
- /**
- * 查询用户租户密钥列表
- *
- * @param tenantSecretKey 用户租户密钥
- * @return 用户租户密钥
- */
- @Override
- public List selectTenantSecretKeyList(TenantSecretKey tenantSecretKey)
- {
- return tenantSecretKeyMapper.selectTenantSecretKeyList(tenantSecretKey);
- }
-
- /**
- * 新增用户租户密钥
- *
- * @param tenantSecretKey 用户租户密钥
- * @return 结果
- */
- @Override
- public int insertTenantSecretKey(TenantSecretKey tenantSecretKey)
- {
- tenantSecretKey.setCreateTime(DateUtils.getNowDate());
- return tenantSecretKeyMapper.insertTenantSecretKey(tenantSecretKey);
- }
-
- /**
- * 修改用户租户密钥
- *
- * @param tenantSecretKey 用户租户密钥
- * @return 结果
- */
- @Override
- public int updateTenantSecretKey(TenantSecretKey tenantSecretKey)
- {
- tenantSecretKey.setUpdateTime(DateUtils.getNowDate());
- return tenantSecretKeyMapper.updateTenantSecretKey(tenantSecretKey);
- }
-
- /**
- * 批量删除用户租户密钥
- *
- * @param ids 需要删除的用户租户密钥主键
- * @return 结果
- */
- @Override
- public int deleteTenantSecretKeyByIds(Long[] ids)
- {
- return tenantSecretKeyMapper.deleteTenantSecretKeyByIds(ids);
- }
-
- /**
- * 删除用户租户密钥信息
- *
- * @param id 用户租户密钥主键
- * @return 结果
- */
- @Override
- public int deleteTenantSecretKeyById(Long id)
- {
- return tenantSecretKeyMapper.deleteTenantSecretKeyById(id);
- }
-}
diff --git a/ff-admin/src/main/java/com/ff/config/KeyConfig.java b/ff-admin/src/main/java/com/ff/config/KeyConfig.java
index 287b8eb..bdf7724 100644
--- a/ff-admin/src/main/java/com/ff/config/KeyConfig.java
+++ b/ff-admin/src/main/java/com/ff/config/KeyConfig.java
@@ -1,6 +1,6 @@
package com.ff.config;
-import com.ff.common.domain.TenantSecretKey;
+import com.ff.base.system.domain.TenantSecretKey;
import org.springframework.stereotype.Component;
/**
diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java b/ff-admin/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java
index e8368a6..94e3f85 100644
--- a/ff-admin/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java
@@ -1,7 +1,6 @@
package com.ff.game.api.jili.service.impl;
import cn.hutool.core.util.NumberUtil;
-import com.alibaba.fastjson2.JSON;
import com.ff.base.constant.CacheConstants;
import com.ff.base.constant.Constants;
import com.ff.base.core.redis.RedisCache;
@@ -10,16 +9,9 @@ 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.StringUtils;
-import com.ff.base.utils.http.HttpClientSslUtils;
-import com.ff.base.utils.http.HttpUtils;
import com.ff.base.utils.sign.Md5Utils;
import com.ff.base.utils.uuid.IdUtils;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.dto.BalanceChangesDTO;
-import com.ff.common.service.ITenantGameQuotaService;
import com.ff.config.KeyConfig;
import com.ff.game.api.IGamesService;
import com.ff.game.api.jili.client.JILIClient;
@@ -30,7 +22,6 @@ import com.ff.game.service.*;
import com.ff.member.domain.Member;
import com.ff.member.service.IMemberService;
import lombok.extern.slf4j.Slf4j;
-import org.apache.http.entity.ContentType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java b/ff-admin/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java
index e9a74f0..238ff5e 100644
--- a/ff-admin/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java
@@ -1,7 +1,6 @@
package com.ff.game.api.xk.service.impl;
import cn.hutool.core.util.NumberUtil;
-import com.alibaba.fastjson2.JSON;
import com.ff.base.constant.CacheConstants;
import com.ff.base.constant.Constants;
import com.ff.base.core.redis.RedisCache;
@@ -15,11 +14,8 @@ 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.StringUtils;
-import com.ff.base.utils.http.HttpClientSslUtils;
import com.ff.base.utils.sign.Md5Utils;
import com.ff.base.utils.uuid.IdUtils;
-import com.ff.common.domain.TenantSecretKey;
import com.ff.config.KeyConfig;
import com.ff.game.api.IGamesService;
import com.ff.game.api.request.*;
diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java b/ff-admin/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java
index 1f88f31..e317992 100644
--- a/ff-admin/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java
+++ b/ff-admin/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java
@@ -2,7 +2,7 @@ package com.ff.game.mapper;
import java.util.List;
-import com.ff.common.domain.TenantSecretKey;
+import com.ff.base.system.domain.TenantSecretKey;
import com.ff.game.domain.GameSecretKey;
import org.apache.ibatis.annotations.Param;
diff --git a/ff-admin/src/main/java/com/ff/game/service/IGameSecretKeyService.java b/ff-admin/src/main/java/com/ff/game/service/IGameSecretKeyService.java
index 2260294..0b9e1f9 100644
--- a/ff-admin/src/main/java/com/ff/game/service/IGameSecretKeyService.java
+++ b/ff-admin/src/main/java/com/ff/game/service/IGameSecretKeyService.java
@@ -2,7 +2,6 @@ package com.ff.game.service;
import java.util.List;
-import com.ff.common.domain.TenantSecretKey;
import com.ff.game.domain.GameSecretKey;
/**
diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java b/ff-admin/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java
index f84ab07..6d6fba7 100644
--- a/ff-admin/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java
@@ -2,6 +2,8 @@ package com.ff.game.service.impl;
import java.util.Collections;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -65,6 +67,7 @@ public class GameBettingDetailsServiceImpl implements IGameBettingDetailsService
@Override
public int insertGameBettingDetails(GameBettingDetails gameBettingDetails)
{
+ gameBettingDetails.setId(IdUtil.getSnowflakeNextId());
gameBettingDetails.setCreateTime(DateUtils.getNowDate());
return gameBettingDetailsMapper.insertGameBettingDetails(gameBettingDetails);
}
diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java b/ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java
index dc6559f..dc6d391 100644
--- a/ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.game.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +55,7 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService
@Override
public int insertGameExchangeMoney(GameExchangeMoney gameExchangeMoney)
{
+ gameExchangeMoney.setId(IdUtil.getSnowflakeNextId());
gameExchangeMoney.setCreateTime(DateUtils.getNowDate());
return gameExchangeMoneyMapper.insertGameExchangeMoney(gameExchangeMoney);
}
diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java b/ff-admin/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java
index 039bc1e..7a710cf 100644
--- a/ff-admin/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.game.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +55,7 @@ public class GameFreeRecordServiceImpl implements IGameFreeRecordService
@Override
public int insertGameFreeRecord(GameFreeRecord gameFreeRecord)
{
+ gameFreeRecord.setId(IdUtil.getSnowflakeNextId());
gameFreeRecord.setCreateTime(DateUtils.getNowDate());
return gameFreeRecordMapper.insertGameFreeRecord(gameFreeRecord);
}
diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java b/ff-admin/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java
index 00471e3..671e83a 100644
--- a/ff-admin/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.game.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +55,7 @@ public class GamePlatformServiceImpl implements IGamePlatformService
@Override
public int insertGamePlatform(GamePlatform gamePlatform)
{
+ gamePlatform.setId(IdUtil.getSnowflakeNextId());
gamePlatform.setCreateTime(DateUtils.getNowDate());
return gamePlatformMapper.insertGamePlatform(gamePlatform);
}
diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java b/ff-admin/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java
index da84490..396ca36 100644
--- a/ff-admin/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java
@@ -1,8 +1,9 @@
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.common.domain.TenantSecretKey;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ff.game.mapper.GameSecretKeyMapper;
@@ -54,6 +55,7 @@ public class GameSecretKeyServiceImpl implements IGameSecretKeyService
@Override
public int insertGameSecretKey(GameSecretKey gameSecretKey)
{
+ gameSecretKey.setId(IdUtil.getSnowflakeNextId());
gameSecretKey.setCreateTime(DateUtils.getNowDate());
return gameSecretKeyMapper.insertGameSecretKey(gameSecretKey);
}
diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameServiceImpl.java b/ff-admin/src/main/java/com/ff/game/service/impl/GameServiceImpl.java
index a76695c..6083629 100644
--- a/ff-admin/src/main/java/com/ff/game/service/impl/GameServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/game/service/impl/GameServiceImpl.java
@@ -3,6 +3,7 @@ package com.ff.game.service.impl;
import java.util.Collections;
import java.util.List;
+import cn.hutool.core.util.IdUtil;
import com.ff.api.response.GameResponse;
import com.ff.base.constant.ConfigConstants;
import com.ff.base.utils.DateUtils;
@@ -64,6 +65,7 @@ public class GameServiceImpl implements IGameService
@Override
public int insertGame(Game game)
{
+ game.setId(IdUtil.getSnowflakeNextId());
game.setCreateTime(DateUtils.getNowDate());
return gameMapper.insertGame(game);
}
diff --git a/ff-admin/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java b/ff-admin/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java
index 5fe8c4e..b6adac7 100644
--- a/ff-admin/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java
@@ -1,6 +1,8 @@
package com.ff.member.service.impl;
import java.util.List;
+
+import cn.hutool.core.util.IdUtil;
import com.ff.base.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,6 +55,7 @@ public class MemberServiceImpl implements IMemberService
@Override
public int insertMember(Member member)
{
+ member.setId(IdUtil.getSnowflakeNextId());
member.setCreateTime(DateUtils.getNowDate());
return memberMapper.insertMember(member);
}
diff --git a/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java b/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java
index 0b951ec..6964375 100644
--- a/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java
@@ -1,5 +1,6 @@
package com.ff.quartz.service.impl;
+import cn.hutool.core.util.IdUtil;
import com.ff.quartz.domain.SysJobLog;
import com.ff.quartz.mapper.SysJobLogMapper;
import com.ff.quartz.service.ISysJobLogService;
@@ -51,6 +52,7 @@ public class SysJobLogServiceImpl implements ISysJobLogService
@Override
public void addJobLog(SysJobLog jobLog)
{
+ jobLog.setJobLogId(IdUtil.getSnowflakeNextId());
jobLogMapper.insertJobLog(jobLog);
}
diff --git a/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java b/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java
index 5e14476..d03c360 100644
--- a/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java
+++ b/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java
@@ -1,5 +1,6 @@
package com.ff.quartz.service.impl;
+import cn.hutool.core.util.IdUtil;
import com.ff.base.constant.ScheduleConstants;
import com.ff.base.exception.job.TaskException;
import com.ff.quartz.domain.SysJob;
@@ -202,6 +203,7 @@ public class SysJobServiceImpl implements ISysJobService
@Transactional(rollbackFor = Exception.class)
public int insertJob(SysJob job) throws SchedulerException, TaskException
{
+ job.setJobId(IdUtil.getSnowflakeNextId());
job.setStatus(ScheduleConstants.Status.PAUSE.getValue());
int rows = jobMapper.insertJob(job);
if (rows > 0)
diff --git a/ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java b/ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java
index 5366bbd..7d363c7 100644
--- a/ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java
+++ b/ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java
@@ -5,18 +5,14 @@ import com.ff.base.constant.Constants;
import com.ff.base.enums.OperationType;
import com.ff.base.enums.QuotaType;
import com.ff.base.utils.DateUtils;
-import com.ff.common.domain.TenantGameQuota;
import com.ff.common.domain.TenantGameQuotaFlow;
import com.ff.common.domain.TenantQuotaExchange;
-import com.ff.common.domain.TenantSecretKey;
-import com.ff.common.dto.BalanceChangesDTO;
import com.ff.common.dto.BalanceRealChangesDTO;
import com.ff.common.service.ITenantGameQuotaFlowService;
import com.ff.common.service.ITenantGameQuotaService;
import com.ff.common.service.ITenantQuotaExchangeService;
-import com.ff.common.service.ITenantSecretKeyService;
+import com.ff.base.system.service.ITenantSecretKeyService;
import lombok.extern.slf4j.Slf4j;
-import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
diff --git a/ff-admin/src/main/java/com/ff/system/SysLoginController.java b/ff-admin/src/main/java/com/ff/system/SysLoginController.java
index 5de7522..0786cb6 100644
--- a/ff-admin/src/main/java/com/ff/system/SysLoginController.java
+++ b/ff-admin/src/main/java/com/ff/system/SysLoginController.java
@@ -3,14 +3,18 @@ package com.ff.system;
import com.ff.base.constant.Constants;
import com.ff.base.core.domain.AjaxResult;
import com.ff.base.core.domain.model.LoginBody;
+import com.ff.base.enums.LoginType;
import com.ff.base.system.domain.SysMenu;
+import com.ff.base.system.domain.SysRole;
import com.ff.base.system.domain.SysUser;
import com.ff.base.system.service.ISysDatasourceService;
import com.ff.base.system.service.ISysMenuService;
import com.ff.base.utils.SecurityUtils;
import com.ff.base.web.service.SysLoginService;
import com.ff.base.web.service.SysPermissionService;
+import com.ff.base.system.service.ITenantSecretKeyService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -18,8 +22,10 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
/**
* 登录验证
@@ -27,8 +33,7 @@ import java.util.Set;
* @author ff
*/
@RestController
-public class SysLoginController
-{
+public class SysLoginController {
@Autowired
private SysLoginService loginService;
@@ -39,7 +44,11 @@ public class SysLoginController
private SysPermissionService permissionService;
@Resource
- private ISysDatasourceService datasourceService;
+ private ISysDatasourceService datasourceService;
+
+
+ @Resource
+ private ITenantSecretKeyService tenantSecretKeyService;
/**
* 登录方法
@@ -48,12 +57,21 @@ public class SysLoginController
* @return 结果
*/
@PostMapping("/login")
- public AjaxResult login(@RequestBody LoginBody loginBody)
- {
+ public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
// 生成令牌
- String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
- loginBody.getUuid());
+ String token = "";
+ // 验证码校验
+ // loginService.validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
+ // 登录前置校验
+ loginService.loginPreCheck(loginBody.getUsername(), loginBody.getPassword());
+ if (LoginType.TENANT.getValue().equals(loginBody.getLoginType())) {
+ token = tenantSecretKeyService.login(loginBody.getUsername(), loginBody.getPassword());
+ } else {
+ token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
+ loginBody.getUuid());
+ }
+
ajax.put(Constants.TOKEN, token);
return ajax;
}
@@ -64,8 +82,7 @@ public class SysLoginController
* @return 用户信息
*/
@GetMapping("getInfo")
- public AjaxResult getInfo(HttpServletRequest request)
- {
+ public AjaxResult getInfo(HttpServletRequest request) {
SysUser user = SecurityUtils.getLoginUser().getUser();
// 角色集合
Set roles = permissionService.getRolePermission(user);
@@ -90,10 +107,13 @@ public class SysLoginController
* @return 路由信息
*/
@GetMapping("getRouters")
- public AjaxResult getRouters()
- {
- Long userId = SecurityUtils.getUserId();
- List menus = menuService.selectMenuTreeByUserId(userId);
+ public AjaxResult getRouters() {
+ List roleIds = SecurityUtils.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList());
+ List menus = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(roleIds)) {
+ menus = menuService.selectMenuTree(roleIds);
+ }
+
return AjaxResult.success(menuService.buildMenus(menus));
}
}
diff --git a/ff-admin/src/main/java/com/ff/system/SysProfileController.java b/ff-admin/src/main/java/com/ff/system/SysProfileController.java
index 60fbc5d..13d87a3 100644
--- a/ff-admin/src/main/java/com/ff/system/SysProfileController.java
+++ b/ff-admin/src/main/java/com/ff/system/SysProfileController.java
@@ -4,9 +4,12 @@ import com.ff.base.annotation.Log;
import com.ff.base.config.FFConfig;
import com.ff.base.core.controller.BaseController;
import com.ff.base.core.domain.AjaxResult;
+import com.ff.base.enums.LoginType;
import com.ff.base.system.domain.SysUser;
import com.ff.base.core.domain.model.LoginUser;
import com.ff.base.enums.BusinessType;
+import com.ff.base.system.domain.TenantSecretKey;
+import com.ff.base.system.service.ITenantSecretKeyService;
import com.ff.base.utils.SecurityUtils;
import com.ff.base.utils.StringUtils;
import com.ff.base.utils.file.FileUploadUtils;
@@ -17,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
+
/**
* 个人信息 业务处理
*
@@ -24,20 +29,21 @@ import org.springframework.web.multipart.MultipartFile;
*/
@RestController
@RequestMapping("/system/user/profile")
-public class SysProfileController extends BaseController
-{
+public class SysProfileController extends BaseController {
@Autowired
private ISysUserService userService;
@Autowired
private TokenService tokenService;
+ @Resource
+ private ITenantSecretKeyService tenantSecretKeyService;
+
/**
* 个人信息
*/
@GetMapping
- public AjaxResult profile()
- {
+ public AjaxResult profile() {
LoginUser loginUser = getLoginUser();
SysUser user = loginUser.getUser();
AjaxResult ajax = AjaxResult.success(user);
@@ -51,24 +57,20 @@ public class SysProfileController extends BaseController
*/
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping
- public AjaxResult updateProfile(@RequestBody SysUser user)
- {
+ public AjaxResult updateProfile(@RequestBody SysUser user) {
LoginUser loginUser = getLoginUser();
SysUser currentUser = loginUser.getUser();
currentUser.setNickName(user.getNickName());
currentUser.setEmail(user.getEmail());
currentUser.setPhonenumber(user.getPhonenumber());
currentUser.setSex(user.getSex());
- if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser))
- {
+ if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) {
return error("修改用户'" + loginUser.getUsername() + "'失败,手机号码已存在");
}
- if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser))
- {
+ if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) {
return error("修改用户'" + loginUser.getUsername() + "'失败,邮箱账号已存在");
}
- if (userService.updateUserProfile(currentUser) > 0)
- {
+ if (userService.updateUserProfile(currentUser) > 0) {
// 更新缓存用户信息
tokenService.setLoginUser(loginUser);
return success();
@@ -81,22 +83,28 @@ public class SysProfileController extends BaseController
*/
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping("/updatePwd")
- public AjaxResult updatePwd(String oldPassword, String newPassword)
- {
+ public AjaxResult updatePwd(String oldPassword, String newPassword) {
LoginUser loginUser = getLoginUser();
String userName = loginUser.getUsername();
String password = loginUser.getPassword();
- if (!SecurityUtils.matchesPassword(oldPassword, password))
- {
+ if (!SecurityUtils.matchesPassword(oldPassword, password)) {
return error("修改密码失败,旧密码错误");
}
- if (SecurityUtils.matchesPassword(newPassword, password))
- {
+ if (SecurityUtils.matchesPassword(newPassword, password)) {
return error("新密码不能与旧密码相同");
}
newPassword = SecurityUtils.encryptPassword(newPassword);
- if (userService.resetUserPwd(userName, newPassword) > 0)
- {
+
+ Integer loginType = loginUser.getUser().getLoginType();
+ Boolean result = Boolean.FALSE;
+ if (LoginType.TENANT.getValue().equals(loginType)) {
+ TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyByTenantKey(userName);
+ tenantSecretKey.setPassword(newPassword);
+ result = tenantSecretKeyService.updateTenantSecretKey(tenantSecretKey) > 0;
+ } else if (LoginType.ADMIN.getValue().equals(loginType)) {
+ result = userService.resetUserPwd(userName, newPassword) > 0;
+ }
+ if (result) {
// 更新缓存用户密码
loginUser.getUser().setPassword(newPassword);
tokenService.setLoginUser(loginUser);
@@ -110,14 +118,11 @@ public class SysProfileController extends BaseController
*/
@Log(title = "用户头像", businessType = BusinessType.UPDATE)
@PostMapping("/avatar")
- public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception
- {
- if (!file.isEmpty())
- {
+ public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception {
+ if (!file.isEmpty()) {
LoginUser loginUser = getLoginUser();
String avatar = FileUploadUtils.upload(FFConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION);
- if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
- {
+ if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) {
AjaxResult ajax = AjaxResult.success();
ajax.put("imgUrl", avatar);
// 更新缓存用户头像
diff --git a/ff-admin/src/main/resources/application-druid.yml b/ff-admin/src/main/resources/application-druid.yml
index 34c7b32..89db033 100644
--- a/ff-admin/src/main/resources/application-druid.yml
+++ b/ff-admin/src/main/resources/application-druid.yml
@@ -7,7 +7,7 @@ spring:
# 端口,默认为6379
port: 6379
# 数据库索引
- database: 2
+ database: 1
# 密码
password:
# 连接超时时间
diff --git a/ff-admin/src/main/resources/application.yml b/ff-admin/src/main/resources/application.yml
index 73d1cb4..359be07 100644
--- a/ff-admin/src/main/resources/application.yml
+++ b/ff-admin/src/main/resources/application.yml
@@ -116,23 +116,8 @@ xss:
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
-#雪花算法id生成器配置
-snowflake:
- worker:
- id: 1
- datacenter:
- id: 1
-
-#aes密钥
-encrypt:
- body:
- aes-key: gktsdFKqo7lJi3Kc #AES加密秘钥
-
-netty:
- app:
- port: 9820
-
- web:
- port: 9821
+
+
+
diff --git a/ff-admin/src/main/resources/i18n/messages.properties b/ff-admin/src/main/resources/i18n/messages.properties
index 094f953..c10300d 100644
--- a/ff-admin/src/main/resources/i18n/messages.properties
+++ b/ff-admin/src/main/resources/i18n/messages.properties
@@ -42,3 +42,6 @@ no.export.permission=您没有导出数据的权限,请联系管理员添加
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
+##租户
+operation.tenant.account.already.used=租户账号已被使用,请更换租户账号
+operation.password.mismatch=两次密码不一致
\ No newline at end of file
diff --git a/ff-admin/src/main/resources/mapper/common/CurrencyMapper.xml b/ff-admin/src/main/resources/mapper/common/CurrencyMapper.xml
index b5687d3..7903797 100644
--- a/ff-admin/src/main/resources/mapper/common/CurrencyMapper.xml
+++ b/ff-admin/src/main/resources/mapper/common/CurrencyMapper.xml
@@ -1,44 +1,73 @@
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- select id, status, country, currency_code, currency_sign, game_rate, currency_display, currency_name, full_name, create_by, create_time, update_by, update_time, remark from ff_currency
+ select id,
+ status,
+ country,
+ currency_code,
+ currency_sign,
+ game_rate,
+ currency_display,
+ currency_name,
+ full_name,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark
+ from ff_currency
-
+