From 7b5ab5fd929a1d64d5dd7148a72c5f9c723c8dbb Mon Sep 17 00:00:00 2001 From: shi Date: Tue, 25 Feb 2025 11:37:06 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat(agent):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=9F=E6=88=B7=E5=88=9B=E5=BB=BA=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增代理注册相关字段和方法- 重构租户创建逻辑,支持信誉额度充值 - 优化数据库表结构,增加注册时间和IP等信息 - 调整代码格式,提高可读性 --- .../ff/agent/contoller/AgentController.java | 24 ++- .../request/AgentCreateTenantRequest.java | 13 +- .../controller/TenantSecretKeyController.java | 104 ---------- .../com/ff/common/domain/TenantAgent.java | 40 ---- .../impl/TenantGameQuotaServiceImpl.java | 2 + .../service/impl/GamesJILIServiceImpl.java | 2 + .../xk/service/impl/GamesXKServiceImpl.java | 2 + .../mapper/common/TenantGameQuotaMapper.xml | 182 +++++++++++++----- .../mapper/game/GameBettingDetailsMapper.xml | 4 +- .../java/com/ff/base/enums/OperationType.java | 3 +- .../ff/base/system/domain/TenantAgent.java | 60 ++++++ .../base/system/domain/TenantSecretKey.java | 37 ++-- .../base/system/mapper/TenantAgentMapper.java | 62 ++++++ .../system/service/ITenantAgentService.java | 62 ++++++ .../service/impl/TenantAgentServiceImpl.java | 97 ++++++++++ .../mapper/system}/TenantAgentMapper.xml | 43 ++++- .../mapper/system}/TenantSecretKeyMapper.xml | 65 ++++--- .../ff/gen/service/GenTableServiceImpl.java | 2 + .../mapper/gen/GenTableColumnMapper.xml | 2 + 19 files changed, 546 insertions(+), 260 deletions(-) delete mode 100644 ff-admin/src/main/java/com/ff/common/controller/TenantSecretKeyController.java delete mode 100644 ff-admin/src/main/java/com/ff/common/domain/TenantAgent.java create mode 100644 ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java create mode 100644 ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java create mode 100644 ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java create mode 100644 ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java rename {ff-admin/src/main/resources/mapper/common => ff-base/src/main/resources/mapper/system}/TenantAgentMapper.xml (55%) rename {ff-admin/src/main/resources/mapper/common => ff-base/src/main/resources/mapper/system}/TenantSecretKeyMapper.xml (84%) 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 index 2392825..0bbf235 100644 --- a/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java +++ b/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java @@ -4,18 +4,24 @@ 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.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.OperationType; +import com.ff.base.enums.QuotaType; 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.DateUtils; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.bean.BeanUtils; +import com.ff.base.utils.ip.IpUtils; import com.ff.base.utils.uuid.IdUtils; import com.ff.base.system.domain.TenantSecretKey; +import com.ff.common.dto.BalanceChangesDTO; import com.ff.common.service.ITenantGameQuotaService; import com.ff.base.system.service.ITenantSecretKeyService; import lombok.extern.slf4j.Slf4j; @@ -23,6 +29,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -98,10 +105,13 @@ public class AgentController extends BaseController { .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.setRegisterIp(IpUtils.getIpAddr()); + tenantSecretKey.setRegisterTime(DateUtils.getNowDate()); + tenantSecretKey.setTenantKey(agentCreateTenantRequest.getAccount()); tenantSecretKey.setPassword(SecurityUtils.encryptPassword(agentCreateTenantRequest.getPassword())); tenantSecretKey.setTenantSn(tenantSecretKeyService.generateTenantSn()); @@ -112,7 +122,19 @@ public class AgentController extends BaseController { tenantSecretKey.setTenantStatus(Boolean.TRUE); int insertedTenantSecretKey = tenantSecretKeyService.insertTenantSecretKey(tenantSecretKey); + //信誉额度 + if (!ObjectUtils.isEmpty(agentCreateTenantRequest.getRealBalance())){ + tenantGameQuotaService.balanceChanges(BalanceChangesDTO.builder() + .isOut(Boolean.TRUE) + .currencyCode(Constants.USDT) + .tenantKey(agentCreateTenantRequest.getAccount()) + .balance(agentCreateTenantRequest.getRealBalance()) + .operationType(OperationType.TENANT_RECHARGE.getCode()) + .quotaType(QuotaType.REPUTATION.getCode()) + .remark(OperationType.TENANT_RECHARGE.getDescription()) + .build()); + } return toAjax(insertedTenantSecretKey); } 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 index bc5f6d7..54cb0b8 100644 --- a/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java +++ b/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java @@ -1,6 +1,7 @@ package com.ff.agent.request; +import com.ff.base.annotation.Excel; import com.ff.base.xss.Xss; import lombok.Data; @@ -34,12 +35,12 @@ public class AgentCreateTenantRequest implements Serializable { @NotBlank(message = "密码不能为空") @Size(min = 5, max = 20, message = "密码长度不能超过25个字符") private String password; - /** - * 确认密码 - */ - @NotBlank(message = "确认密码不能为空") - @Size(min = 5, max = 20, message = "密码长度不能超过25个字符") - private String confirmPassword; + + + /** 买分比例 */ + @NotNull(message = "买分比例不能为空") + private BigDecimal scoreRatio; + /** 租户类型 TenantType 枚举 */ 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 deleted file mode 100644 index 5e5b7b8..0000000 --- a/ff-admin/src/main/java/com/ff/common/controller/TenantSecretKeyController.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.ff.common.controller; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ff.base.annotation.Log; -import com.ff.base.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.enums.BusinessType; -import com.ff.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; - -/** - * 用户租户密钥Controller - * - * @author shi - * @date 2025-02-11 - */ -@RestController -@RequestMapping("/common/key") -public class TenantSecretKeyController extends BaseController -{ - @Autowired - private ITenantSecretKeyService tenantSecretKeyService; - - /** - * 查询用户租户密钥列表 - */ - @PreAuthorize("@ss.hasPermi('common:key:list')") - @GetMapping("/list") - public TableDataInfo list(TenantSecretKey tenantSecretKey) - { - startPage(); - List list = tenantSecretKeyService.selectTenantSecretKeyList(tenantSecretKey); - return getDataTable(list); - } - - /** - * 导出用户租户密钥列表 - */ - @PreAuthorize("@ss.hasPermi('common:key:export')") - @Log(title = "用户租户密钥", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, TenantSecretKey tenantSecretKey) - { - List list = tenantSecretKeyService.selectTenantSecretKeyList(tenantSecretKey); - ExcelUtil util = new ExcelUtil(TenantSecretKey.class); - util.exportExcel(response, list, "用户租户密钥数据"); - } - - /** - * 获取用户租户密钥详细信息 - */ - @PreAuthorize("@ss.hasPermi('common:key:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return success(tenantSecretKeyService.selectTenantSecretKeyById(id)); - } - - /** - * 新增用户租户密钥 - */ - @PreAuthorize("@ss.hasPermi('common:key:add')") - @Log(title = "用户租户密钥", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody TenantSecretKey tenantSecretKey) - { - return toAjax(tenantSecretKeyService.insertTenantSecretKey(tenantSecretKey)); - } - - /** - * 修改用户租户密钥 - */ - @PreAuthorize("@ss.hasPermi('common:key:edit')") - @Log(title = "用户租户密钥", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody TenantSecretKey tenantSecretKey) - { - return toAjax(tenantSecretKeyService.updateTenantSecretKey(tenantSecretKey)); - } - - /** - * 删除用户租户密钥 - */ - @PreAuthorize("@ss.hasPermi('common:key:remove')") - @Log(title = "用户租户密钥", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { - return toAjax(tenantSecretKeyService.deleteTenantSecretKeyByIds(ids)); - } -} diff --git a/ff-admin/src/main/java/com/ff/common/domain/TenantAgent.java b/ff-admin/src/main/java/com/ff/common/domain/TenantAgent.java deleted file mode 100644 index 350e1c6..0000000 --- a/ff-admin/src/main/java/com/ff/common/domain/TenantAgent.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ff.common.domain; - -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; - -/** - * 代理对象 ff_tenant_agent - * - * @author shi - * @date 2025-02-20 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class TenantAgent extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 主键id */ - private Long id; - - /** 账号 */ - @Excel(name = "账号") - private String account; - - /** 密码 */ - @Excel(name = "密码") - private String password; - - /** 代理状态 1正常 0停用 */ - @Excel(name = "代理状态 1正常 0停用") - private Boolean agentStatus; - - -} 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 1883275..2d53bb5 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 @@ -28,6 +28,7 @@ import com.ff.game.domain.GameSecretKey; 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; @@ -440,6 +441,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { if (ObjectUtils.isEmpty(tenantGameQuota)) { tenantGameQuota = TenantGameQuota.builder() .tenantKey(tenantKey) + .id(IdUtil.getSnowflakeNextId()) .balance(BigDecimal.ZERO) .quotaType(quotaType) .version(0) 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 94e3f85..7f671fc 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,5 +1,6 @@ package com.ff.game.api.jili.service.impl; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import com.ff.base.constant.CacheConstants; import com.ff.base.constant.Constants; @@ -650,6 +651,7 @@ public class GamesJILIServiceImpl implements IGamesService { for (JILIBetRecordDataResponseDTO jiliBetRecordDataResponseDTO : dataBean.getResult()) { GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(jiliBetRecordDataResponseDTO).build()); if (!ObjectUtils.isEmpty(bettingDetails)) { + bettingDetails.setId(IdUtil.getSnowflakeNextId()); gameBettingDetails.add(bettingDetails); } wagersIds.add(jiliBetRecordDataResponseDTO.getWagersId()); 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 ac8ccf9..752d35f 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,5 +1,6 @@ package com.ff.game.api.xk.service.impl; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import com.ff.base.constant.CacheConstants; import com.ff.base.constant.Constants; @@ -510,6 +511,7 @@ public class GamesXKServiceImpl implements IGamesService { for (XKBetRecordResponseDTO.DataBean.ResultBean bean : dataBean.getResult()) { GameBettingDetails bettingDetails = this.dataBuild(GamesDataBuildDTO.builder().data(bean).build()); if (!ObjectUtils.isEmpty(bettingDetails)) { + bettingDetails.setId(IdUtil.getSnowflakeNextId()); gameBettingDetails.add(bettingDetails); } wagersIds.add(bean.getWagersId()); diff --git a/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml b/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml index 85c0d1f..d08a88a 100644 --- a/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml +++ b/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml @@ -1,95 +1,171 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - + + + + + + + + + - select id, tenant_key, balance, quota_type, version, create_by, create_time, update_by, update_time from ff_tenant_game_quota + select id, + tenant_key, + balance, + quota_type, + version, + create_by, + create_time, + update_by, + update_time + from ff_tenant_game_quota - - where tenant_key = #{tenantKey} and quota_type = #{quotaType} + where tenant_key = #{tenantKey} and quota_type = #{quotaType} - + - update ff_tenant_game_quota set balance = #{balance},version =version+1 - where tenant_key = #{tenantKey} and quota_type = #{quotaType} and version = #{version} + update ff_tenant_game_quota + set balance = #{balance}, + version =version + 1 + where tenant_key = #{tenantKey} + and quota_type = #{quotaType} + and version = #{version} insert into ff_tenant_game_quota - id, - tenant_key, - balance, - quota_type, - version, - create_by, - create_time, - update_by, - update_time, - - #{id}, - #{tenantKey}, - #{balance}, - #{quotaType}, - #{version}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - + + + id, + + + tenant_key, + + + balance, + + + quota_type, + + + version, + + + create_by, + + + create_time, + + + update_by, + + + update_time, + + + + + #{id}, + + + #{tenantKey}, + + + #{balance}, + + + #{quotaType}, + + + #{version}, + + + #{createBy}, + + + #{createTime}, + + + #{updateBy}, + + + #{updateTime}, + + update ff_tenant_game_quota - tenant_key = #{tenantKey}, - balance = #{balance}, - quota_type = #{quotaType}, - version = #{version}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, + + tenant_key = #{tenantKey}, + + + balance = #{balance}, + + + quota_type = #{quotaType}, + + + version = #{version}, + + + create_by = #{createBy}, + + + create_time = #{createTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + where id = #{id} - delete from ff_tenant_game_quota where id = #{id} + delete + from ff_tenant_game_quota + where id = #{id} - delete from ff_tenant_game_quota where id in + delete from ff_tenant_game_quota where id in #{id} diff --git a/ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml b/ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml index 82d2803..fd56525 100644 --- a/ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml +++ b/ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml @@ -191,7 +191,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into ff_game_betting_details - id, + id, tenant_key, game_id, currency_code, member_id, game_code, game_type, platform_code, game_name, game_status, game_status_type, game_currency_code, account, wagers_id, wagers_time, bet_amount, payoff_time, payoff_amount, @@ -199,7 +199,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" values - id, + #{item.id}, #{item.tenantKey}, #{item.gameId}, #{item.currencyCode}, diff --git a/ff-base/src/main/java/com/ff/base/enums/OperationType.java b/ff-base/src/main/java/com/ff/base/enums/OperationType.java index db52574..5da6f46 100644 --- a/ff-base/src/main/java/com/ff/base/enums/OperationType.java +++ b/ff-base/src/main/java/com/ff/base/enums/OperationType.java @@ -11,7 +11,8 @@ import lombok.Getter; @Getter public enum OperationType { API_BALANCE(1, "租户游玩操作余额"), - REAL_BALANCE_SETTLEMENT(2, "日用额度结算") + REAL_BALANCE_SETTLEMENT(2, "日用额度结算"), + TENANT_RECHARGE(3, "信誉额度充值") ; private final Integer code; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java new file mode 100644 index 0000000..773e036 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java @@ -0,0 +1,60 @@ +package com.ff.base.system.domain; + +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; + +/** + * 代理对象 ff_tenant_agent + * + * @author shi + * @date 2025-02-25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgent extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 账号 */ + @Excel(name = "账号") + private String account; + + /** 密码 */ + @Excel(name = "密码") + private String password; + + /** 注册时间 */ + @Excel(name = "注册时间") + private Long registerTime; + + /** 注册IP */ + @Excel(name = "注册IP") + private String registerIp; + + /** 注册ip的城市 */ + @Excel(name = "注册ip的城市") + private String registerIpCity; + + /** 最后登录ip */ + @Excel(name = "最后登录ip") + private String loginIp; + + /** 最后登录时间 */ + @Excel(name = "最后登录时间") + private Long loginData; + + /** 租户状态 1正常 0停用 */ + @Excel(name = "租户状态 1正常 0停用") + private Boolean tenantStatus; + + +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java index 0780728..fe097b7 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java @@ -1,9 +1,6 @@ package com.ff.base.system.domain; import java.math.BigDecimal; - - -import com.fasterxml.jackson.annotation.JsonIgnore; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -15,7 +12,7 @@ import lombok.NoArgsConstructor; * 用户租户密钥对象 ff_tenant_secret_key * * @author shi - * @date 2025-02-20 + * @date 2025-02-25 */ @Data @AllArgsConstructor @@ -28,14 +25,26 @@ public class TenantSecretKey extends BaseEntity /** 主键id */ private Long id; - - + /** 租户key */ + @Excel(name = "租户key") + private String tenantKey; /** 密码 */ @Excel(name = "密码") - @JsonIgnore private String password; + /** 注册时间 */ + @Excel(name = "注册时间") + private Long registerTime; + + /** 注册ip */ + @Excel(name = "注册ip") + private String registerIp; + + /** 注册ip的城市 */ + @Excel(name = "注册ip的城市") + private String registerIpCity; + /** 最后登录ip */ @Excel(name = "最后登录ip") private String loginIp; @@ -44,26 +53,16 @@ public class TenantSecretKey extends BaseEntity @Excel(name = "最后登录时间") private Long loginData; - - - /** 租户key */ - @Excel(name = "租户key") - private String tenantKey; - - /** 代理id */ - @Excel(name = "代理id") + /** 上级代理id */ + @Excel(name = "上级代理id") private Long agentId; - - /** 商户后缀 */ @Excel(name = "商户后缀") - @JsonIgnore private String tenantSn; /** 租户密钥 */ @Excel(name = "租户密钥") - @JsonIgnore private String tenantSecret; /** 租户状态 1正常 0停用 */ diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java new file mode 100644 index 0000000..b7e61d5 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java @@ -0,0 +1,62 @@ +package com.ff.base.system.mapper; + +import com.ff.base.system.domain.TenantAgent; + +import java.util.List; + +/** + * 代理Mapper接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface TenantAgentMapper +{ + /** + * 查询代理 + * + * @param id 代理主键 + * @return 代理 + */ + TenantAgent selectTenantAgentById(Long id); + + /** + * 查询代理列表 + * + * @param tenantAgent 代理 + * @return 代理集合 + */ + List selectTenantAgentList(TenantAgent tenantAgent); + + /** + * 新增代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + int insertTenantAgent(TenantAgent tenantAgent); + + /** + * 修改代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + int updateTenantAgent(TenantAgent tenantAgent); + + /** + * 删除代理 + * + * @param id 代理主键 + * @return 结果 + */ + int deleteTenantAgentById(Long id); + + /** + * 批量删除代理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentByIds(Long[] ids); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java new file mode 100644 index 0000000..59d8d5b --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java @@ -0,0 +1,62 @@ +package com.ff.base.system.service; + +import com.ff.base.system.domain.TenantAgent; + +import java.util.List; + +/** + * 代理Service接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface ITenantAgentService +{ + /** + * 查询代理 + * + * @param id 代理主键 + * @return 代理 + */ + TenantAgent selectTenantAgentById(Long id); + + /** + * 查询代理列表 + * + * @param tenantAgent 代理 + * @return 代理集合 + */ + List selectTenantAgentList(TenantAgent tenantAgent); + + /** + * 新增代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + int insertTenantAgent(TenantAgent tenantAgent); + + /** + * 修改代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + int updateTenantAgent(TenantAgent tenantAgent); + + /** + * 批量删除代理 + * + * @param ids 需要删除的代理主键集合 + * @return 结果 + */ + int deleteTenantAgentByIds(Long[] ids); + + /** + * 删除代理信息 + * + * @param id 代理主键 + * @return 结果 + */ + int deleteTenantAgentById(Long id); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java new file mode 100644 index 0000000..ac391b0 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java @@ -0,0 +1,97 @@ +package com.ff.base.system.service.impl; + +import java.util.List; + +import com.ff.base.system.domain.TenantAgent; +import com.ff.base.system.mapper.TenantAgentMapper; +import com.ff.base.system.service.ITenantAgentService; +import com.ff.base.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 代理Service业务层处理 + * + * @author shi + * @date 2025-02-25 + */ +@Service +public class TenantAgentServiceImpl implements ITenantAgentService +{ + @Autowired + private TenantAgentMapper tenantAgentMapper; + + /** + * 查询代理 + * + * @param id 代理主键 + * @return 代理 + */ + @Override + public TenantAgent selectTenantAgentById(Long id) + { + return tenantAgentMapper.selectTenantAgentById(id); + } + + /** + * 查询代理列表 + * + * @param tenantAgent 代理 + * @return 代理 + */ + @Override + public List selectTenantAgentList(TenantAgent tenantAgent) + { + return tenantAgentMapper.selectTenantAgentList(tenantAgent); + } + + /** + * 新增代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + @Override + public int insertTenantAgent(TenantAgent tenantAgent) + { + tenantAgent.setCreateTime(DateUtils.getNowDate()); + return tenantAgentMapper.insertTenantAgent(tenantAgent); + } + + /** + * 修改代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + @Override + public int updateTenantAgent(TenantAgent tenantAgent) + { + tenantAgent.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentMapper.updateTenantAgent(tenantAgent); + } + + /** + * 批量删除代理 + * + * @param ids 需要删除的代理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentByIds(Long[] ids) + { + return tenantAgentMapper.deleteTenantAgentByIds(ids); + } + + /** + * 删除代理信息 + * + * @param id 代理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentById(Long id) + { + return tenantAgentMapper.deleteTenantAgentById(id); + } +} diff --git a/ff-admin/src/main/resources/mapper/common/TenantAgentMapper.xml b/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml similarity index 55% rename from ff-admin/src/main/resources/mapper/common/TenantAgentMapper.xml rename to ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml index d989609..4384590 100644 --- a/ff-admin/src/main/resources/mapper/common/TenantAgentMapper.xml +++ b/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml @@ -2,13 +2,18 @@ - + - + + + + + + @@ -16,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, account, password, agent_status, create_by, create_time, update_by, update_time from ff_tenant_agent + select id, account, password, register_time, register_ip, register_ip_city, login_ip, login_data, tenant_status, create_by, create_time, update_by, update_time from ff_tenant_agent @@ -35,19 +45,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into ff_tenant_agent - id, + account, password, - agent_status, + register_time, + register_ip, + register_ip_city, + login_ip, + login_data, + tenant_status, create_by, create_time, update_by, update_time, - #{id}, + #{account}, #{password}, - #{agentStatus}, + #{registerTime}, + #{registerIp}, + #{registerIpCity}, + #{loginIp}, + #{loginData}, + #{tenantStatus}, #{createBy}, #{createTime}, #{updateBy}, @@ -60,7 +80,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" account = #{account}, password = #{password}, - agent_status = #{agentStatus}, + register_time = #{registerTime}, + register_ip = #{registerIp}, + register_ip_city = #{registerIpCity}, + login_ip = #{loginIp}, + login_data = #{loginData}, + tenant_status = #{tenantStatus}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, diff --git a/ff-admin/src/main/resources/mapper/common/TenantSecretKeyMapper.xml b/ff-base/src/main/resources/mapper/system/TenantSecretKeyMapper.xml similarity index 84% rename from ff-admin/src/main/resources/mapper/common/TenantSecretKeyMapper.xml rename to ff-base/src/main/resources/mapper/system/TenantSecretKeyMapper.xml index fc64001..96c6f8d 100644 --- a/ff-admin/src/main/resources/mapper/common/TenantSecretKeyMapper.xml +++ b/ff-base/src/main/resources/mapper/system/TenantSecretKeyMapper.xml @@ -6,10 +6,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + - @@ -25,34 +28,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, password, login_ip, login_data, tenant_key, agent_id, tenant_sn, tenant_secret, tenant_status, quota_type, score_ratio, tenant_type, deposit_ratio, create_by, create_time, update_by, update_time from ff_tenant_secret_key + select id, tenant_key, password, register_time, register_ip, register_ip_city, login_ip, login_data, agent_id, tenant_sn, tenant_secret, tenant_status, quota_type, score_ratio, tenant_type, deposit_ratio, create_by, create_time, update_by, update_time from ff_tenant_secret_key - - + + + and password = #{password} + and login_ip = #{loginIp} + and login_data = #{loginData} + and tenant_key like concat('%',#{tenantKey},'%') + and agent_id = #{agentId} + and tenant_sn = #{tenantSn} + and tenant_secret = #{tenantSecret} + and tenant_status = #{tenantStatus} + and quota_type = #{quotaType} + and score_ratio = #{scoreRatio} + and tenant_type = #{tenantType} + and deposit_ratio = #{depositRatio} + + + delete from ff_tenant_secret_key where id in diff --git a/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java b/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java index ae7cafb..6fc9b1f 100644 --- a/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java +++ b/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java @@ -1,5 +1,6 @@ package com.ff.gen.service; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ff.base.constant.Constants; @@ -331,6 +332,7 @@ public class GenTableServiceImpl implements IGenTableService } else { + column.setColumnId(IdUtil.getSnowflakeNextId()); genTableColumnMapper.insertGenTableColumn(column); } }); diff --git a/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml b/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml index 7bd06d9..96e9188 100644 --- a/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml +++ b/ff-gen/src/main/resources/mapper/gen/GenTableColumnMapper.xml @@ -47,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into gen_table_column ( + column_id, table_id, column_name, column_comment, @@ -67,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_by, create_time )values( + #{columnId}, #{tableId}, #{columnName}, #{columnComment}, From 1323f46128a23be458ce5ef060e0499f8e6903e2 Mon Sep 17 00:00:00 2001 From: shi Date: Thu, 27 Feb 2025 16:26:02 +0800 Subject: [PATCH 02/12] =?UTF-8?q?refactor(ff-game):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E6=A8=A1=E5=9D=97=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 ff-admin 项目中的游戏相关代码迁移到 ff-game 项目 - 优化了游戏兑换货币相关的数据结构和接口 - 添加了新的佣金相关枚举和DTO -调整了游戏赌博详情的查询逻辑 --- .../ff/agent/contoller/AgentController.java | 146 ------- .../member/controller/MemberController.java | 104 ----- .../common/TenantGameQuotaFlowMapper.xml | 156 ------- .../mapper/game/GameExchangeMoneyMapper.xml | 137 ------ .../com/ff/base/config/SecurityConfig.java | 13 + .../com/ff/base/constant/ConfigConstants.java | 71 +-- .../base/enums/CommissionApprovalStatus.java | 25 ++ .../ff/base/enums/CommissionSourceType.java | 23 + .../com/ff/base/enums/CommissionType.java | 23 + .../java/com/ff/base/enums/GamePlatforms.java | 14 + .../java/com/ff/base/enums/InviteType.java | 25 ++ .../ff/base/enums/InviterRegisterStatus.java | 23 + .../com/ff/base/system/domain/SysConfig.java | 5 +- .../ff/base/system/domain/SysDatasource.java | 3 + .../com/ff/base/system/domain/SysDept.java | 8 +- .../ff/base/system/domain/SysDictData.java | 8 +- .../ff/base/system/domain/SysDictType.java | 5 +- .../ff/base/system/domain/SysLogininfor.java | 2 + .../com/ff/base/system/domain/SysMenu.java | 6 +- .../com/ff/base/system/domain/SysOperLog.java | 1 + .../com/ff/base/system/domain/SysPost.java | 5 +- .../com/ff/base/system/domain/SysRole.java | 5 +- .../ff/base/system/domain/SysRoleDept.java | 8 +- .../ff/base/system/domain/SysRoleMenu.java | 8 +- .../com/ff/base/system/domain/SysUser.java | 5 + .../ff/base/system/domain/TenantAgent.java | 16 + .../ff/base/system/domain/TenantPlatform.java | 53 +++ .../base/system/domain/TenantSecretKey.java | 9 + .../ff/base/system/dto/CreateTenantDTO.java | 73 ++++ .../base/system/mapper/TenantAgentMapper.java | 8 + .../system/mapper/TenantPlatformMapper.java | 61 +++ .../system/service/ITenantAgentService.java | 26 ++ .../service/ITenantPlatformService.java | 61 +++ .../service/ITenantSecretKeyService.java | 10 + .../service/impl/TenantAgentServiceImpl.java | 115 ++++- .../impl/TenantPlatformServiceImpl.java | 99 +++++ .../impl/TenantSecretKeyServiceImpl.java | 62 ++- .../java/com/ff/base/utils/NumberUtils.java | 4 +- .../web/service/AgentDetailsServiceImpl.java | 95 ++++ .../mapper/system/TenantAgentMapper.xml | 19 +- .../mapper/system/TenantPlatformMapper.xml | 94 ++++ {ff-admin => ff-game}/pom.xml | 2 +- .../src/main/java/com/ff/FFApplication.java | 0 .../java/com/ff/FFServletInitializer.java | 0 .../ff/agent/controller/AgentController.java | 137 ++++++ .../TenantAgentCommissionController.java | 122 ++++++ .../TenantAgentInviteController.java | 114 +++++ .../TenantAgentInvitePlatformController.java | 48 ++ .../TenantAgentInviteRegisterController.java | 236 ++++++++++ .../TenantAgentPlatformController.java | 42 ++ .../TenantAgentWithdrawalController.java | 73 ++++ .../agent/domain/TenantAgentCommission.java | 87 ++++ .../ff/agent/domain/TenantAgentInvite.java | 73 ++++ .../domain/TenantAgentInvitePlatform.java | 53 +++ .../domain/TenantAgentInviteRegister.java | 76 ++++ .../agent/domain/TenantAgentWithdrawal.java | 54 +++ .../ff/agent/dto/AgentCreateTenantDTO.java | 14 +- .../ff/agent/dto/AgentTenantSecretKeyDTO.java | 5 + .../ff/agent/dto/TenantAgentInviteDTO.java | 28 ++ .../dto/TenantAgentInviteRegisterAddDTO.java | 34 ++ .../dto/TenantAgentInviteRegisterDTO.java | 19 + .../mapper/TenantAgentCommissionMapper.java | 61 +++ .../agent/mapper/TenantAgentInviteMapper.java | 70 +++ .../TenantAgentInvitePlatformMapper.java | 61 +++ .../TenantAgentInviteRegisterMapper.java | 72 +++ .../mapper/TenantAgentWithdrawalMapper.java | 61 +++ .../ITenantAgentCommissionService.java | 61 +++ .../ITenantAgentInvitePlatformService.java | 61 +++ .../ITenantAgentInviteRegisterService.java | 73 ++++ .../service/ITenantAgentInviteService.java | 77 ++++ .../ITenantAgentWithdrawalService.java | 61 +++ .../TenantAgentCommissionServiceImpl.java | 99 +++++ .../TenantAgentInvitePlatformServiceImpl.java | 99 +++++ .../TenantAgentInviteRegisterServiceImpl.java | 113 +++++ .../impl/TenantAgentInviteServiceImpl.java | 128 ++++++ .../TenantAgentWithdrawalServiceImpl.java | 99 +++++ .../java/com/ff/annotation/CheckHeader.java | 0 .../com/ff/annotation/HeaderCheckAspect.java | 0 .../ff/api/controller/ApiGameController.java | 4 +- .../api/controller/ApiMemberController.java | 0 .../api/controller/ApiTenantController.java | 0 .../request/GameCancelFreeSpinRequest.java | 0 .../request/GameCreateFreeSpinRequest.java | 0 .../GameExchangeBalanceAllRequest.java | 0 .../request/GameExchangeBalanceRequest.java | 2 +- .../api/request/GameGetBetRecordRequest.java | 0 .../ff/api/request/GameGetDetailRequest.java | 0 .../GameGetFreeSpinDashflowRequest.java | 0 .../request/GameKickMemeberAllRequest.java | 0 .../api/request/GameKickMemeberRequest.java | 0 .../com/ff/api/request/GameLoginRequest.java | 0 .../api/request/MemberCreateApiRequest.java | 0 .../api/request/MemberInfoAllApiRequest.java | 0 .../ff/api/request/MemberInfoApiRequest.java | 0 .../response/GameBettingDetailsResponse.java | 0 .../response/GameExchangeBalanceResponse.java | 0 .../api/response/GameFreeRecordResponse.java | 0 .../com/ff/api/response/GameResponse.java | 0 .../api/response/MemberInfoAllResponse.java | 0 .../ff/api/response/MemberInfoResponse.java | 0 .../ff/api/response/TenantInfoResponse.java | 0 .../common/controller/CaptchaController.java | 0 .../common/controller/CurrencyController.java | 12 + .../ff/common/controller/LangController.java | 0 .../controller/TenantGameQuotaController.java | 0 .../TenantGameQuotaFlowController.java | 0 .../TenantQuotaExchangeController.java | 0 .../java/com/ff/common/domain/Currency.java | 4 + .../main/java/com/ff/common/domain/Lang.java | 3 + .../ff/common/domain/TenantAgentPlatform.java | 45 ++ .../com/ff/common/domain/TenantGameQuota.java | 4 +- .../ff/common/domain/TenantGameQuotaFlow.java | 10 + .../ff/common/domain/TenantQuotaExchange.java | 4 + .../com/ff/common/dto/BalanceChangesDTO.java | 8 + .../ff/common/dto/BalanceRealChangesDTO.java | 0 .../ff/common/dto/GameBalanceExchange.java | 5 + .../com/ff/common/mapper/CurrencyMapper.java | 0 .../java/com/ff/common/mapper/LangMapper.java | 0 .../mapper/TenantAgentPlatformMapper.java | 61 +++ .../mapper/TenantGameQuotaFlowMapper.java | 0 .../common/mapper/TenantGameQuotaMapper.java | 0 .../mapper/TenantQuotaExchangeMapper.java | 0 .../ff/common/service/ICurrencyService.java | 0 .../com/ff/common/service/ILangService.java | 0 .../service/ITenantAgentPlatformService.java | 61 +++ .../service/ITenantGameQuotaFlowService.java | 0 .../service/ITenantGameQuotaService.java | 3 + .../service/ITenantQuotaExchangeService.java | 0 .../service/impl/CurrencyServiceImpl.java | 0 .../common/service/impl/LangServiceImpl.java | 0 .../impl/TenantAgentPlatformServiceImpl.java | 99 +++++ .../impl/TenantGameQuotaFlowServiceImpl.java | 0 .../impl/TenantGameQuotaServiceImpl.java | 16 +- .../impl/TenantQuotaExchangeServiceImpl.java | 0 .../config/ContentRefreshedEventListener.java | 0 .../main/java/com/ff/config/KeyConfig.java | 0 .../java/com/ff/config/SwaggerConfig.java | 0 .../ff/file/controller/FileController.java | 0 .../com/ff/file/service/ISysFileService.java | 0 .../service/impl/LocalSysFileServiceImpl.java | 0 .../java/com/ff/game/api/IGamesService.java | 0 .../api/jili/address/MyJILIAddressSource.java | 0 .../ff/game/api/jili/client/JILIClient.java | 0 .../dto/JILIBetRecordDataResponseDTO.java | 0 .../jili/dto/JILIBetRecordResponseDTO.java | 0 .../dto/JILICancelFreeSpinResponseDTO.java | 0 .../dto/JILICreateFreeSpinResponseDTO.java | 0 .../jili/dto/JILICreateMemberResponseDTO.java | 0 .../dto/JILIExchangeMoneyResponseDTO.java | 0 .../ff/game/api/jili/dto/JILIGamesDTO.java | 0 .../game/api/jili/dto/JILIGamesDataDTO.java | 0 .../JILIGetFreeSpinDashflowResponseDTO.java | 0 .../dto/JILIGetGameDetailResponseDTO.java | 0 .../api/jili/dto/JILIKickMemberAllDTO.java | 0 .../game/api/jili/dto/JILIKickMemberDTO.java | 0 .../JILILoginWithoutRedirectResponseDTO.java | 0 .../game/api/jili/dto/JILIMemberInfoDTO.java | 0 .../service/impl/GamesJILIServiceImpl.java | 0 .../game/api/request/BetRecordByTimeDTO.java | 0 .../api/request/CancelFreeSpinRequestDTO.java | 0 .../api/request/CreateFreeSpinRequestDTO.java | 0 .../api/request/CreateMemberRequestDTO.java | 0 .../ExchangeTransferMoneyRequestDTO.java | 0 .../ff/game/api/request/GameUniqueDTO.java | 0 .../game/api/request/GamesBaseRequestDTO.java | 0 .../game/api/request/GamesDataBuildDTO.java | 0 .../com/ff/game/api/request/GamesLogin.java | 0 .../GetFreeSpinDashflowRequestDTO.java | 0 .../api/request/GetGameDetailRequestDTO.java | 0 .../api/request/GetGameDetailResponseDTO.java | 0 .../ff/game/api/request/KickMemberAllDTO.java | 0 .../api/request/KickMemberRequestDTO.java | 0 .../api/request/MemberInfoRequestDTO.java | 0 .../api/request/MemberInfoResponseDTO.java | 0 .../api/xk/address/MyXKAddressSource.java | 0 .../com/ff/game/api/xk/client/XKClient.java | 0 .../api/xk/dto/XKBetRecordResponseDTO.java | 0 .../api/xk/dto/XKCreateMemberResponseDTO.java | 0 .../xk/dto/XKExchangeMoneyResponseDTO.java | 0 .../com/ff/game/api/xk/dto/XKGamesDTO.java | 0 .../game/api/xk/dto/XKKickMemberAllDTO.java | 0 .../ff/game/api/xk/dto/XKKickMemberDTO.java | 0 .../XKLoginWithoutRedirectResponseDTO.java | 0 .../ff/game/api/xk/dto/XKMemberInfoDTO.java | 0 .../xk/service/impl/GamesXKServiceImpl.java | 0 .../GameBettingDetailsController.java | 0 .../ff/game/controller/GameController.java | 0 .../GameExchangeMoneyController.java | 0 .../controller/GameFreeRecordController.java | 0 .../controller/GamePlatformController.java | 35 +- .../controller/GameSecretKeyController.java | 0 .../main/java/com/ff/game/domain/Game.java | 4 + .../ff/game/domain/GameBettingDetails.java | 10 + .../com/ff/game/domain/GameExchangeMoney.java | 5 + .../com/ff/game/domain/GameFreeRecord.java | 8 + .../java/com/ff/game/domain/GamePlatform.java | 3 + .../com/ff/game/domain/GameSecretKey.java | 3 + .../com/ff/game/dto/GameExchangeMoneyDTO.java | 23 + .../game/mapper/GameBettingDetailsMapper.java | 0 .../game/mapper/GameExchangeMoneyMapper.java | 9 + .../ff/game/mapper/GameFreeRecordMapper.java | 0 .../java/com/ff/game/mapper/GameMapper.java | 0 .../ff/game/mapper/GamePlatformMapper.java | 0 .../ff/game/mapper/GameSecretKeyMapper.java | 0 .../service/IGameBettingDetailsService.java | 0 .../service/IGameExchangeMoneyService.java | 11 + .../game/service/IGameFreeRecordService.java | 0 .../ff/game/service/IGamePlatformService.java | 0 .../game/service/IGameSecretKeyService.java | 0 .../com/ff/game/service/IGameService.java | 0 .../impl/GameBettingDetailsServiceImpl.java | 0 .../impl/GameExchangeMoneyServiceImpl.java | 7 + .../impl/GameFreeRecordServiceImpl.java | 0 .../service/impl/GamePlatformServiceImpl.java | 0 .../impl/GameSecretKeyServiceImpl.java | 0 .../ff/game/service/impl/GameServiceImpl.java | 0 .../member/controller/MemberController.java | 50 +++ .../java/com/ff/member/domain/Member.java | 3 + .../com/ff/member/mapper/MemberMapper.java | 0 .../com/ff/member/service/IMemberService.java | 0 .../service/impl/MemberServiceImpl.java | 0 .../ff/monitor/SysLogininforController.java | 0 .../com/ff/monitor/SysOperlogController.java | 0 .../com/ff/quartz/config/ScheduleConfig.java | 0 .../quartz/controller/SysJobController.java | 0 .../controller/SysJobLogController.java | 0 .../java/com/ff/quartz/domain/SysJob.java | 5 +- .../java/com/ff/quartz/domain/SysJobLog.java | 5 +- .../com/ff/quartz/mapper/SysJobLogMapper.java | 0 .../com/ff/quartz/mapper/SysJobMapper.java | 0 .../ff/quartz/service/ISysJobLogService.java | 0 .../com/ff/quartz/service/ISysJobService.java | 0 .../service/impl/SysJobLogServiceImpl.java | 0 .../service/impl/SysJobServiceImpl.java | 0 .../java/com/ff/quartz/task/GameTask.java | 0 .../main/java/com/ff/quartz/task/RyTask.java | 0 .../com/ff/quartz/task/TenantQuotaTask.java | 0 .../com/ff/quartz/util/AbstractQuartzJob.java | 0 .../java/com/ff/quartz/util/CronUtils.java | 0 .../com/ff/quartz/util/JobInvokeUtil.java | 0 .../QuartzDisallowConcurrentExecution.java | 0 .../ff/quartz/util/QuartzJobExecution.java | 0 .../com/ff/quartz/util/ScheduleUtils.java | 0 .../com/ff/system/SysConfigController.java | 0 .../ff/system/SysDatasourceController.java | 0 .../java/com/ff/system/SysDeptController.java | 0 .../com/ff/system/SysDictDataController.java | 0 .../com/ff/system/SysDictTypeController.java | 0 .../com/ff/system/SysIndexController.java | 0 .../com/ff/system/SysLoginController.java | 7 + .../java/com/ff/system/SysMenuController.java | 0 .../java/com/ff/system/SysPostController.java | 0 .../com/ff/system/SysProfileController.java | 10 + .../com/ff/system/SysRegisterController.java | 0 .../java/com/ff/system/SysRoleController.java | 0 .../java/com/ff/system/SysUserController.java | 0 .../TenantBettingDetailsController.java | 56 +++ .../tenant/controller/TenantController.java | 61 +++ .../controller/TenantExchangeController.java | 50 +++ .../controller/TenantQuotaController.java | 48 ++ .../controller/TenantQuotaFlowController.java | 51 +++ .../java/com/ff/tenant/dto/TenantDTO.java | 40 ++ .../java/com/ff/validation/ListSizeCheck.java | 0 .../com/ff/validation/ListSizeValidator.java | 0 .../META-INF/spring-devtools.properties | 0 .../src/main/resources/application-druid.yml | 0 .../src/main/resources/application-prod.yml | 0 .../src/main/resources/application.yml | 0 .../main/resources/i18n/messages.properties | 0 .../src/main/resources/logback.xml | 0 .../agent/TenantAgentCommissionMapper.xml | 142 ++++++ .../mapper/agent/TenantAgentInviteMapper.xml | 126 ++++++ .../agent/TenantAgentInvitePlatformMapper.xml | 94 ++++ .../agent/TenantAgentInviteRegisterMapper.xml | 172 ++++++++ .../agent/TenantAgentWithdrawalMapper.xml | 94 ++++ .../mapper/common/CurrencyMapper.xml | 0 .../resources/mapper/common/LangMapper.xml | 0 .../common/TenantAgentPlatformMapper.xml | 89 ++++ .../common/TenantGameQuotaFlowMapper.xml | 336 ++++++++++++++ .../mapper/common/TenantGameQuotaMapper.xml | 0 .../common/TenantQuotaExchangeMapper.xml | 0 .../mapper/game/GameBettingDetailsMapper.xml | 2 +- .../mapper/game/GameExchangeMoneyMapper.xml | 413 ++++++++++++++++++ .../mapper/game/GameFreeRecordMapper.xml | 0 .../main/resources/mapper/game/GameMapper.xml | 0 .../mapper/game/GamePlatformMapper.xml | 0 .../mapper/game/GameSecretKeyMapper.xml | 0 .../resources/mapper/member/MemberMapper.xml | 2 +- .../mapper/quartz/SysJobLogMapper.xml | 0 .../resources/mapper/quartz/SysJobMapper.xml | 0 .../main/resources/mybatis/mybatis-config.xml | 0 .../ff/gen/service/GenTableServiceImpl.java | 2 + ff-gen/src/main/resources/generator.yml | 2 +- .../resources/mapper/gen/GenTableMapper.xml | 2 + .../src/main/resources/vm/java/domain.java.vm | 3 + .../resources/vm/java/serviceImpl.java.vm | 3 + pom.xml | 4 +- 297 files changed, 5703 insertions(+), 675 deletions(-) delete mode 100644 ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java delete mode 100644 ff-admin/src/main/java/com/ff/member/controller/MemberController.java delete mode 100644 ff-admin/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml delete mode 100644 ff-admin/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml create mode 100644 ff-base/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java create mode 100644 ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java create mode 100644 ff-base/src/main/java/com/ff/base/enums/CommissionType.java create mode 100644 ff-base/src/main/java/com/ff/base/enums/InviteType.java create mode 100644 ff-base/src/main/java/com/ff/base/enums/InviterRegisterStatus.java create mode 100644 ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java create mode 100644 ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java create mode 100644 ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java create mode 100644 ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java create mode 100644 ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java create mode 100644 ff-base/src/main/java/com/ff/base/web/service/AgentDetailsServiceImpl.java create mode 100644 ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml rename {ff-admin => ff-game}/pom.xml (99%) rename {ff-admin => ff-game}/src/main/java/com/ff/FFApplication.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/FFServletInitializer.java (100%) create mode 100644 ff-game/src/main/java/com/ff/agent/controller/AgentController.java create mode 100644 ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java create mode 100644 ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java create mode 100644 ff-game/src/main/java/com/ff/agent/controller/TenantAgentInvitePlatformController.java create mode 100644 ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java create mode 100644 ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java create mode 100644 ff-game/src/main/java/com/ff/agent/controller/TenantAgentWithdrawalController.java create mode 100644 ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java create mode 100644 ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java create mode 100644 ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java create mode 100644 ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java create mode 100644 ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java rename ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java => ff-game/src/main/java/com/ff/agent/dto/AgentCreateTenantDTO.java (74%) rename {ff-admin => ff-game}/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java (86%) create mode 100644 ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteDTO.java create mode 100644 ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterAddDTO.java create mode 100644 ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterDTO.java create mode 100644 ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java create mode 100644 ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java create mode 100644 ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java create mode 100644 ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java create mode 100644 ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java create mode 100644 ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java rename {ff-admin => ff-game}/src/main/java/com/ff/annotation/CheckHeader.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/annotation/HeaderCheckAspect.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/controller/ApiGameController.java (99%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/controller/ApiMemberController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/controller/ApiTenantController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameCancelFreeSpinRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameCreateFreeSpinRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameExchangeBalanceAllRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java (97%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameGetBetRecordRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameGetDetailRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameGetFreeSpinDashflowRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameKickMemeberAllRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameKickMemeberRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/GameLoginRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/MemberCreateApiRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/MemberInfoAllApiRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/request/MemberInfoApiRequest.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/GameBettingDetailsResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/GameExchangeBalanceResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/GameFreeRecordResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/GameResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/MemberInfoAllResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/MemberInfoResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/api/response/TenantInfoResponse.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/controller/CaptchaController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/controller/CurrencyController.java (91%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/controller/LangController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/controller/TenantGameQuotaController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/domain/Currency.java (86%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/domain/Lang.java (80%) create mode 100644 ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java rename {ff-admin => ff-game}/src/main/java/com/ff/common/domain/TenantGameQuota.java (85%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java (85%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/domain/TenantQuotaExchange.java (86%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/dto/BalanceChangesDTO.java (82%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/dto/BalanceRealChangesDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/dto/GameBalanceExchange.java (93%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/mapper/CurrencyMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/mapper/LangMapper.java (100%) create mode 100644 ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java rename {ff-admin => ff-game}/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/ICurrencyService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/ILangService.java (100%) create mode 100644 ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/ITenantGameQuotaService.java (98%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/impl/LangServiceImpl.java (100%) create mode 100644 ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java (96%) rename {ff-admin => ff-game}/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/config/ContentRefreshedEventListener.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/config/KeyConfig.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/config/SwaggerConfig.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/file/controller/FileController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/file/service/ISysFileService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/file/service/impl/LocalSysFileServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/IGamesService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/client/JILIClient.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordDataResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILICancelFreeSpinResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILICreateFreeSpinResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILICreateMemberResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIExchangeMoneyResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIGamesDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIGamesDataDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIGetFreeSpinDashflowResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIGetGameDetailResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberAllDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILILoginWithoutRedirectResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/dto/JILIMemberInfoDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/BetRecordByTimeDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/CancelFreeSpinRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/CreateFreeSpinRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/CreateMemberRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/ExchangeTransferMoneyRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GameUniqueDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GamesBaseRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GamesDataBuildDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GamesLogin.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GetFreeSpinDashflowRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GetGameDetailRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/GetGameDetailResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/KickMemberAllDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/KickMemberRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/MemberInfoRequestDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/request/MemberInfoResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/client/XKClient.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKBetRecordResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKCreateMemberResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKExchangeMoneyResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKGamesDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKKickMemberAllDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKKickMemberDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKLoginWithoutRedirectResponseDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/dto/XKMemberInfoDTO.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/controller/GameBettingDetailsController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/controller/GameController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/controller/GameExchangeMoneyController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/controller/GameFreeRecordController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/controller/GamePlatformController.java (85%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/controller/GameSecretKeyController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/domain/Game.java (85%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/domain/GameBettingDetails.java (84%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/domain/GameExchangeMoney.java (90%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/domain/GameFreeRecord.java (82%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/domain/GamePlatform.java (86%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/domain/GameSecretKey.java (85%) create mode 100644 ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java rename {ff-admin => ff-game}/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java (82%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/mapper/GameMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/mapper/GamePlatformMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/IGameBettingDetailsService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java (80%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/IGameFreeRecordService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/IGamePlatformService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/IGameSecretKeyService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/IGameService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java (90%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/game/service/impl/GameServiceImpl.java (100%) create mode 100644 ff-game/src/main/java/com/ff/member/controller/MemberController.java rename {ff-admin => ff-game}/src/main/java/com/ff/member/domain/Member.java (83%) rename {ff-admin => ff-game}/src/main/java/com/ff/member/mapper/MemberMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/member/service/IMemberService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/monitor/SysLogininforController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/monitor/SysOperlogController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/config/ScheduleConfig.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/controller/SysJobController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/controller/SysJobLogController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/domain/SysJob.java (95%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/domain/SysJobLog.java (93%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/mapper/SysJobMapper.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/service/ISysJobLogService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/service/ISysJobService.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/task/GameTask.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/task/RyTask.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/task/TenantQuotaTask.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/util/CronUtils.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/util/JobInvokeUtil.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/util/QuartzJobExecution.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/quartz/util/ScheduleUtils.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysConfigController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysDatasourceController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysDeptController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysDictDataController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysDictTypeController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysIndexController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysLoginController.java (92%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysMenuController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysPostController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysProfileController.java (92%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysRegisterController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysRoleController.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/system/SysUserController.java (100%) create mode 100644 ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java create mode 100644 ff-game/src/main/java/com/ff/tenant/controller/TenantController.java create mode 100644 ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java create mode 100644 ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java create mode 100644 ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java create mode 100644 ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java rename {ff-admin => ff-game}/src/main/java/com/ff/validation/ListSizeCheck.java (100%) rename {ff-admin => ff-game}/src/main/java/com/ff/validation/ListSizeValidator.java (100%) rename {ff-admin => ff-game}/src/main/resources/META-INF/spring-devtools.properties (100%) rename {ff-admin => ff-game}/src/main/resources/application-druid.yml (100%) rename {ff-admin => ff-game}/src/main/resources/application-prod.yml (100%) rename {ff-admin => ff-game}/src/main/resources/application.yml (100%) rename {ff-admin => ff-game}/src/main/resources/i18n/messages.properties (100%) rename {ff-admin => ff-game}/src/main/resources/logback.xml (100%) create mode 100644 ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml create mode 100644 ff-game/src/main/resources/mapper/agent/TenantAgentInviteMapper.xml create mode 100644 ff-game/src/main/resources/mapper/agent/TenantAgentInvitePlatformMapper.xml create mode 100644 ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml create mode 100644 ff-game/src/main/resources/mapper/agent/TenantAgentWithdrawalMapper.xml rename {ff-admin => ff-game}/src/main/resources/mapper/common/CurrencyMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/common/LangMapper.xml (100%) create mode 100644 ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml create mode 100644 ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml rename {ff-admin => ff-game}/src/main/resources/mapper/common/TenantGameQuotaMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/game/GameBettingDetailsMapper.xml (99%) create mode 100644 ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml rename {ff-admin => ff-game}/src/main/resources/mapper/game/GameFreeRecordMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/game/GameMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/game/GamePlatformMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/game/GameSecretKeyMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/member/MemberMapper.xml (98%) rename {ff-admin => ff-game}/src/main/resources/mapper/quartz/SysJobLogMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mapper/quartz/SysJobMapper.xml (100%) rename {ff-admin => ff-game}/src/main/resources/mybatis/mybatis-config.xml (100%) 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 deleted file mode 100644 index 0bbf235..0000000 --- a/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java +++ /dev/null @@ -1,146 +0,0 @@ -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.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.OperationType; -import com.ff.base.enums.QuotaType; -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.DateUtils; -import com.ff.base.utils.MessageUtils; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.bean.BeanUtils; -import com.ff.base.utils.ip.IpUtils; -import com.ff.base.utils.uuid.IdUtils; -import com.ff.base.system.domain.TenantSecretKey; -import com.ff.common.dto.BalanceChangesDTO; -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.util.ObjectUtils; -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")); - - - //创建租户 - TenantSecretKey tenantSecretKey = new TenantSecretKey(); - tenantSecretKey.setAgentId(getUserId()); - tenantSecretKey.setRegisterIp(IpUtils.getIpAddr()); - tenantSecretKey.setRegisterTime(DateUtils.getNowDate()); - - 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); - - //信誉额度 - if (!ObjectUtils.isEmpty(agentCreateTenantRequest.getRealBalance())){ - tenantGameQuotaService.balanceChanges(BalanceChangesDTO.builder() - .isOut(Boolean.TRUE) - .currencyCode(Constants.USDT) - .tenantKey(agentCreateTenantRequest.getAccount()) - .balance(agentCreateTenantRequest.getRealBalance()) - .operationType(OperationType.TENANT_RECHARGE.getCode()) - .quotaType(QuotaType.REPUTATION.getCode()) - .remark(OperationType.TENANT_RECHARGE.getDescription()) - .build()); - - } - return toAjax(insertedTenantSecretKey); - } - - - - - - -} diff --git a/ff-admin/src/main/java/com/ff/member/controller/MemberController.java b/ff-admin/src/main/java/com/ff/member/controller/MemberController.java deleted file mode 100644 index 03ff24a..0000000 --- a/ff-admin/src/main/java/com/ff/member/controller/MemberController.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.ff.member.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.member.domain.Member; -import com.ff.member.service.IMemberService; -import com.ff.base.utils.poi.ExcelUtil; -import com.ff.base.core.page.TableDataInfo; - -/** - * 会员Controller - * - * @author shi - * @date 2025-02-10 - */ -@RestController -@RequestMapping("/member/member") -public class MemberController extends BaseController -{ - @Autowired - private IMemberService memberService; - - /** - * 查询会员列表 - */ - @PreAuthorize("@ss.hasPermi('member:member:list')") - @GetMapping("/list") - public TableDataInfo list(Member member) - { - startPage(); - List list = memberService.selectMemberList(member); - return getDataTable(list); - } - - /** - * 导出会员列表 - */ - @PreAuthorize("@ss.hasPermi('member:member:export')") - @Log(title = "会员", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, Member member) - { - List list = memberService.selectMemberList(member); - ExcelUtil util = new ExcelUtil(Member.class); - util.exportExcel(response, list, "会员数据"); - } - - /** - * 获取会员详细信息 - */ - @PreAuthorize("@ss.hasPermi('member:member:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return success(memberService.selectMemberById(id)); - } - - /** - * 新增会员 - */ - @PreAuthorize("@ss.hasPermi('member:member:add')") - @Log(title = "会员", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody Member member) - { - return toAjax(memberService.insertMember(member)); - } - - /** - * 修改会员 - */ - @PreAuthorize("@ss.hasPermi('member:member:edit')") - @Log(title = "会员", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody Member member) - { - return toAjax(memberService.updateMember(member)); - } - - /** - * 删除会员 - */ - @PreAuthorize("@ss.hasPermi('member:member:remove')") - @Log(title = "会员", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { - return toAjax(memberService.deleteMemberByIds(ids)); - } -} diff --git a/ff-admin/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml b/ff-admin/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml deleted file mode 100644 index 8fa6293..0000000 --- a/ff-admin/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_key, quota_type, member_id, platform_code, currency_code, is_out, operation_type, balance_before, balance, exchange_ratio, exchange_money, balance_after, remark, create_by, create_time, update_by, update_time from ff_tenant_game_quota_flow - - - - - - - - insert into ff_tenant_game_quota_flow - id, - tenant_key, - quota_type, - member_id, - platform_code, - currency_code, - is_out, - operation_type, - balance_before, - balance, - exchange_ratio, - exchange_money, - balance_after, - remark, - create_by, - create_time, - update_by, - update_time, - - #{id}, - #{tenantKey}, - #{quotaType}, - #{memberId}, - #{platformCode}, - #{currencyCode}, - #{isOut}, - #{operationType}, - #{balanceBefore}, - #{balance}, - #{exchangeRatio}, - #{exchangeMoney}, - #{balanceAfter}, - #{remark}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update ff_tenant_game_quota_flow - - tenant_key = #{tenantKey}, - quota_type = #{quotaType}, - member_id = #{memberId}, - platform_code = #{platformCode}, - currency_code = #{currencyCode}, - is_out = #{isOut}, - operation_type = #{operationType}, - balance_before = #{balanceBefore}, - balance = #{balance}, - exchange_ratio = #{exchangeRatio}, - exchange_money = #{exchangeMoney}, - balance_after = #{balanceAfter}, - remark = #{remark}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from ff_tenant_game_quota_flow where id = #{id} - - - - delete from ff_tenant_game_quota_flow where id in - - #{id} - - - - - - - - - \ No newline at end of file diff --git a/ff-admin/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml b/ff-admin/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml deleted file mode 100644 index 121150a..0000000 --- a/ff-admin/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_key,order_id, currency_code, transaction_id, member_id, platform_code, balance, quota, coin_before, coin_after, currency_before, currency_after, exchange_type, status, create_by, create_time, update_by, update_time from ff_game_exchange_money - - - - - - - - insert into ff_game_exchange_money - id, - tenant_key, - currency_code, - order_id, - transaction_id, - member_id, - platform_code, - balance, - quota, - coin_before, - coin_after, - currency_before, - currency_after, - exchange_type, - status, - create_by, - create_time, - update_by, - update_time, - - #{id}, - #{tenantKey}, - #{currencyCode}, - #{orderId}, - #{transactionId}, - #{memberId}, - #{platformCode}, - #{balance}, - #{quota}, - #{coinBefore}, - #{coinAfter}, - #{currencyBefore}, - #{currencyAfter}, - #{exchangeType}, - #{status}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update ff_game_exchange_money - - tenant_key = #{tenantKey}, - currency_code = #{currencyCode}, - order_id = #{orderId}, - transaction_id = #{transactionId}, - member_id = #{memberId}, - platform_code = #{platformCode}, - balance = #{balance}, - quota = #{quota}, - coin_before = #{coinBefore}, - coin_after = #{coinAfter}, - currency_before = #{currencyBefore}, - currency_after = #{currencyAfter}, - exchange_type = #{exchangeType}, - status = #{status}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from ff_game_exchange_money where id = #{id} - - - - delete from ff_game_exchange_money where id in - - #{id} - - - \ No newline at end of file diff --git a/ff-base/src/main/java/com/ff/base/config/SecurityConfig.java b/ff-base/src/main/java/com/ff/base/config/SecurityConfig.java index 6a80785..9e96de0 100644 --- a/ff-base/src/main/java/com/ff/base/config/SecurityConfig.java +++ b/ff-base/src/main/java/com/ff/base/config/SecurityConfig.java @@ -6,6 +6,7 @@ import com.ff.base.security.filter.JwtAuthenticationTokenFilter; import com.ff.base.security.handle.AuthenticationEntryPointImpl; import com.ff.base.security.handle.LogoutSuccessHandlerImpl; import com.ff.base.security.provider.MyDaoAuthenticationProvider; +import com.ff.base.web.service.AgentDetailsServiceImpl; import com.ff.base.web.service.TenantDetailsServiceImpl; import com.ff.base.web.service.UserDetailsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -44,6 +45,11 @@ public class SecurityConfig { @Autowired private TenantDetailsServiceImpl tenantDetailsService; + + + @Autowired + private AgentDetailsServiceImpl agentDetailsService; + /** * 认证失败处理类 */ @@ -84,6 +90,8 @@ public class SecurityConfig { List userDetailsServices = new ArrayList<>(); userDetailsServices.add(userDetailsService); userDetailsServices.add(tenantDetailsService); + userDetailsServices.add(agentDetailsService); + List providers = new ArrayList<>(); MyDaoAuthenticationProvider adminDaoAuthenticationProvider = new MyDaoAuthenticationProvider(); @@ -97,6 +105,11 @@ public class SecurityConfig { adminDaoAuthenticationProvider1.setPasswordEncoder(bCryptPasswordEncoder()); adminDaoAuthenticationProvider1.setUserDetailsServices(userDetailsServices); + MyDaoAuthenticationProvider adminDaoAuthenticationProvider2 = new MyDaoAuthenticationProvider(); + adminDaoAuthenticationProvider2.setUserDetailsService(agentDetailsService); + adminDaoAuthenticationProvider2.setPasswordEncoder(bCryptPasswordEncoder()); + adminDaoAuthenticationProvider2.setUserDetailsServices(userDetailsServices); + return new ProviderManager(providers); diff --git a/ff-base/src/main/java/com/ff/base/constant/ConfigConstants.java b/ff-base/src/main/java/com/ff/base/constant/ConfigConstants.java index 2ad2c14..444dbcc 100644 --- a/ff-base/src/main/java/com/ff/base/constant/ConfigConstants.java +++ b/ff-base/src/main/java/com/ff/base/constant/ConfigConstants.java @@ -8,68 +8,6 @@ package com.ff.base.constant; public class ConfigConstants { - /** - * 游戏充值 - */ - public static final String GAME_RECHARGE = "game.recharge"; - - - /** - * 游戏下载应用 - */ - public static final String GAME_DOWNLOAD_APP = "game.download.app"; - - /** - * 游戏充值下载应用 - */ - public static final String GAME_RECHARGE_DOWNLOAD_APP = "game.download.app"; - /** - * 游戏安卓下载应用 - */ - public static final String GAME_ANDROID_DOWNLOAD_APP = "game.android.download.app"; - /** - * 热门一 - */ - public static final String HOT_ONE = "hot.one"; - /** - * 热门二 - */ - public static final String HOT_TWO = "hot.two"; - /** - * 通知全部删除状态 - */ - public static final String NOTICE_ALL_DELETE_STATUS = "notice.all.delete.status"; - /** - * 通知全部已读状态 - */ - public static final String NOTICE_ALL_READ_STATUS = "notice.all.read.status"; - /** - * 通知显示发布时间 - */ - public static final String NOTICE_SHOW_CREATE_TIME = "notice.show.create.time"; - - - /** - * 第三方游戏账号唯一key - */ - public static final String GAME_ACCOUNT = "game.account"; - - /** - * 关于我们开关 - */ - public static final String ABOUT_SWITCH = "about.switch"; - - - /** - * 跳过消息中心 - */ - public static final String SKIP_MESSAGE_CENTER = "skip.message.center"; - - - /** - * 是否开启在线客服开关 - */ - public static final String OPEN_SERVICE = "open.service"; /** @@ -77,10 +15,6 @@ public class ConfigConstants */ public static final String VIEW_FILE_URL = "view.file.url"; - /** - * H5防拦截开关 1 开启 2关闭 - */ - public static final String H5_INTERCEPT_OPEN = "h5.intercept.open"; /** * 域名nginx配置文件 @@ -91,4 +25,9 @@ public class ConfigConstants * 域nginx配置参数 */ public static final String DOMAIN_NGINX_CONFIG_PARAM = "domain.nginx.config.param"; + + /** + * 邀请url + */ + public static final String INVITE_URL = "invite.url"; } diff --git a/ff-base/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java b/ff-base/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java new file mode 100644 index 0000000..94db038 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/CommissionApprovalStatus.java @@ -0,0 +1,25 @@ +package com.ff.base.enums; + +import lombok.Getter; + +/** + * 委员会批准状态 + * + * @author shi + * @date 2025/02/26 + */ +@Getter +public enum CommissionApprovalStatus { + UNWITHDRAWN(0, "未提现"), + WITHDRAWING(1, "提现中"), + WITHDRAWN(2, "已提现"); + + private final Integer value; + private final String description; + + CommissionApprovalStatus(Integer value, String description) { + this.value = value; + this.description = description; + } + +} diff --git a/ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java b/ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java new file mode 100644 index 0000000..414b256 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/CommissionSourceType.java @@ -0,0 +1,23 @@ +package com.ff.base.enums; + +import lombok.Data; +import lombok.Getter; + +/** + * 佣金来源类型 + * + * @author shi + * @date 2025/02/26 + */ +@Getter +public enum CommissionSourceType { + AGENT_TENANT_REGISTER(1, "代理链接商户注册"); + + private final int value; + private final String description; + + CommissionSourceType(int value, String description) { + this.value = value; + this.description = description; + } +} diff --git a/ff-base/src/main/java/com/ff/base/enums/CommissionType.java b/ff-base/src/main/java/com/ff/base/enums/CommissionType.java new file mode 100644 index 0000000..8d2718c --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/CommissionType.java @@ -0,0 +1,23 @@ +package com.ff.base.enums; + +import lombok.Getter; + +/** + * 佣金类型 + * + * @author shi + * @date 2025/02/26 + */ +@Getter +public enum CommissionType { + INVITE(1, "邀请"), + TAKE(2,"抽成"); + + private final int value; + private final String description; + + CommissionType(int value, String description) { + this.value = value; + this.description = description; + } +} diff --git a/ff-base/src/main/java/com/ff/base/enums/GamePlatforms.java b/ff-base/src/main/java/com/ff/base/enums/GamePlatforms.java index 0699988..d58f3e4 100644 --- a/ff-base/src/main/java/com/ff/base/enums/GamePlatforms.java +++ b/ff-base/src/main/java/com/ff/base/enums/GamePlatforms.java @@ -1,5 +1,8 @@ package com.ff.base.enums; +import java.util.ArrayList; +import java.util.List; + public enum GamePlatforms { JILI("JILI", "JILI"), XK("XK", "XK"), @@ -14,6 +17,17 @@ public enum GamePlatforms { this.info = info; } + + public static List getCodes() + { + List result=new ArrayList<>(); + GamePlatforms[] values = GamePlatforms.values(); + for (GamePlatforms value : values) { + result.add(value.getCode()); + } + return result; + } + public String getCode() { return code; diff --git a/ff-base/src/main/java/com/ff/base/enums/InviteType.java b/ff-base/src/main/java/com/ff/base/enums/InviteType.java new file mode 100644 index 0000000..48774f3 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/InviteType.java @@ -0,0 +1,25 @@ +package com.ff.base.enums; + + +import lombok.Getter; + +/** + * 邀请类型 + * + * @author shi + * @date 2025/02/27 + */ +@Getter +public enum InviteType { + + TENANT(1, "租户"), + AGENT(2, "代理"); + + private final Integer value; + private final String description; + + InviteType(Integer value, String description) { + this.value = value; + this.description = description; + } +} diff --git a/ff-base/src/main/java/com/ff/base/enums/InviterRegisterStatus.java b/ff-base/src/main/java/com/ff/base/enums/InviterRegisterStatus.java new file mode 100644 index 0000000..172642e --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/InviterRegisterStatus.java @@ -0,0 +1,23 @@ +package com.ff.base.enums; + +import lombok.Getter; + +/** + * 邀请者注册状态 + * + * @author shi + * @date 2025/02/26 + */ +@Getter +public enum InviterRegisterStatus { + PENDING(1, "待激活"), + ACTIVATED(2, "已激活"); + + private final Integer value; // 状态值 + private final String description; // 状态描述 + + InviterRegisterStatus(Integer value, String description) { + this.value = value; + this.description = description; + } +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java b/ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java index 8efd44a..4f14ff3 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysConfig.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; @@ -20,6 +22,7 @@ public class SysConfig extends BaseEntity /** 参数主键 */ @Excel(name = "参数主键", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long configId; /** 参数名称 */ @@ -37,7 +40,7 @@ public class SysConfig extends BaseEntity /** 系统内置(Y是 N否) */ @Excel(name = "系统内置", readConverterExp = "Y=是,N=否") private String configType; - + @JsonSerialize(using = ToStringSerializer.class) public Long getConfigId() { return configId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java b/ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java index aa9bed8..8eb1e6f 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysDatasource.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; @@ -15,6 +17,7 @@ public class SysDatasource extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 租户id */ diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDept.java b/ff-base/src/main/java/com/ff/base/system/domain/SysDept.java index 8395dba..387525b 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDept.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysDept.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -21,9 +23,11 @@ public class SysDept extends BaseEntity private static final long serialVersionUID = 1L; /** 部门ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long deptId; /** 父部门ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long parentId; /** 祖级列表 */ @@ -55,7 +59,7 @@ public class SysDept extends BaseEntity /** 子部门 */ private List children = new ArrayList(); - + @JsonSerialize(using = ToStringSerializer.class) public Long getDeptId() { return deptId; @@ -65,7 +69,7 @@ public class SysDept extends BaseEntity { this.deptId = deptId; } - + @JsonSerialize(using = ToStringSerializer.class) public Long getParentId() { return parentId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java b/ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java index 8c45a31..24120b7 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysDictData.java @@ -1,6 +1,8 @@ package com.ff.base.system.domain; import com.fasterxml.jackson.annotation.JsonView; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.constant.UserConstants; @@ -24,11 +26,13 @@ public class SysDictData extends BaseEntity /** 字典编码 */ @Excel(name = "字典编码", cellType = ColumnType.NUMERIC) @JsonView(DictDataSimpleView.class) + @JsonSerialize(using = ToStringSerializer.class) private Long dictCode; /** 字典排序 */ @Excel(name = "字典排序", cellType = ColumnType.NUMERIC) @JsonView(DictDataSimpleView.class) + @JsonSerialize(using = ToStringSerializer.class) private Long dictSort; /** 字典标签 */ @@ -74,7 +78,7 @@ public class SysDictData extends BaseEntity } @JsonView(DictDataSimpleView.class) private String remark; - + @JsonSerialize(using = ToStringSerializer.class) public Long getDictCode() { return dictCode; @@ -84,7 +88,7 @@ public class SysDictData extends BaseEntity { this.dictCode = dictCode; } - + @JsonSerialize(using = ToStringSerializer.class) public Long getDictSort() { return dictSort; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java b/ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java index a124a75..1763a52 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysDictType.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; @@ -21,6 +23,7 @@ public class SysDictType extends BaseEntity /** 字典主键 */ @Excel(name = "字典主键", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long dictId; /** 字典名称 */ @@ -34,7 +37,7 @@ public class SysDictType extends BaseEntity /** 状态(0正常 1停用) */ @Excel(name = "状态", readConverterExp = "0=正常,1=停用") private String status; - + @JsonSerialize(using = ToStringSerializer.class) public Long getDictId() { return dictId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java b/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java index 67686de..54946da 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java @@ -17,6 +17,7 @@ public class SysLogininfor extends BaseEntity /** ID */ @Excel(name = "序号", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long infoId; /** 用户账号 */ @@ -48,6 +49,7 @@ public class SysLogininfor extends BaseEntity private String msg; /** 访问时间 */ + @JsonSerialize(using = ToStringSerializer.class) @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Long loginTime; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java b/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java index 369ba10..b78d591 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -20,6 +22,7 @@ public class SysMenu extends BaseEntity private static final long serialVersionUID = 1L; /** 菜单ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long menuId; /** 菜单名称 */ @@ -29,6 +32,7 @@ public class SysMenu extends BaseEntity private String parentName; /** 父菜单ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long parentId; /** 显示顺序 */ @@ -69,7 +73,7 @@ public class SysMenu extends BaseEntity /** 子菜单 */ private List children = new ArrayList(); - + @JsonSerialize(using = ToStringSerializer.class) public Long getMenuId() { return menuId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java b/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java index 751c7f9..5d07551 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java @@ -17,6 +17,7 @@ public class SysOperLog extends BaseEntity /** 日志主键 */ @Excel(name = "操作序号", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long operId; /** 操作模块 */ diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysPost.java b/ff-base/src/main/java/com/ff/base/system/domain/SysPost.java index 1000220..ede0789 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysPost.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysPost.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; @@ -21,6 +23,7 @@ public class SysPost extends BaseEntity /** 岗位序号 */ @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long postId; /** 岗位编码 */ @@ -41,7 +44,7 @@ public class SysPost extends BaseEntity /** 用户是否存在此岗位标识 默认不存在 */ private boolean flag = false; - + @JsonSerialize(using = ToStringSerializer.class) public Long getPostId() { return postId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java b/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java index 22382bc..a7122bc 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.core.domain.BaseEntity; @@ -22,6 +24,7 @@ public class SysRole extends BaseEntity /** 角色ID */ @Excel(name = "角色序号", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long roleId; /** 角色名称 */ @@ -74,7 +77,7 @@ public class SysRole extends BaseEntity { this.roleId = roleId; } - + @JsonSerialize(using = ToStringSerializer.class) public Long getRoleId() { return roleId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java b/ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java index ef6a0ef..3829123 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysRoleDept.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -11,11 +13,13 @@ import org.apache.commons.lang3.builder.ToStringStyle; public class SysRoleDept { /** 角色ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long roleId; /** 部门ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long deptId; - + @JsonSerialize(using = ToStringSerializer.class) public Long getRoleId() { return roleId; @@ -25,7 +29,7 @@ public class SysRoleDept { this.roleId = roleId; } - + @JsonSerialize(using = ToStringSerializer.class) public Long getDeptId() { return deptId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java b/ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java index 76860b1..701199d 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysRoleMenu.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -11,11 +13,13 @@ import org.apache.commons.lang3.builder.ToStringStyle; public class SysRoleMenu { /** 角色ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long roleId; /** 菜单ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long menuId; - + @JsonSerialize(using = ToStringSerializer.class) public Long getRoleId() { return roleId; @@ -25,7 +29,7 @@ public class SysRoleMenu { this.roleId = roleId; } - + @JsonSerialize(using = ToStringSerializer.class) public Long getMenuId() { return menuId; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java b/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java index 470d250..5b1c0ec 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.annotation.Excel.Type; @@ -27,6 +29,7 @@ public class SysUser extends BaseEntity { /** * 用户ID */ + @JsonSerialize(using = ToStringSerializer.class) @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") private Long userId; @@ -34,6 +37,7 @@ public class SysUser extends BaseEntity { * 部门ID */ @Excel(name = "部门编号", type = Type.IMPORT) + @JsonSerialize(using = ToStringSerializer.class) private Long deptId; /** @@ -105,6 +109,7 @@ public class SysUser extends BaseEntity { * 最后登录时间 */ @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) + @JsonSerialize(using = ToStringSerializer.class) private Long loginDate; /** diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java index 773e036..0af0653 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java @@ -1,5 +1,7 @@ package com.ff.base.system.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -22,6 +24,7 @@ public class TenantAgent extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 账号 */ @@ -34,6 +37,7 @@ public class TenantAgent extends BaseEntity /** 注册时间 */ @Excel(name = "注册时间") + @JsonSerialize(using = ToStringSerializer.class) private Long registerTime; /** 注册IP */ @@ -50,6 +54,7 @@ public class TenantAgent extends BaseEntity /** 最后登录时间 */ @Excel(name = "最后登录时间") + @JsonSerialize(using = ToStringSerializer.class) private Long loginData; /** 租户状态 1正常 0停用 */ @@ -57,4 +62,15 @@ public class TenantAgent extends BaseEntity private Boolean tenantStatus; + + /** + * 货币协议 + */ + private String currencyAgreement; + + /** + * 钱包地址 + */ + private String walletAddress; + } diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java new file mode 100644 index 0000000..5f86063 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantPlatform.java @@ -0,0 +1,53 @@ +package com.ff.base.system.domain; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 租户成本管理对象 ff_tenant_platform + * + * @author shi + * @date 2025-02-27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantPlatform extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 租户id */ + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd") + private Long tenantId; + + /** 平台编码 */ + @Excel(name = "平台编码") + private String platformCode; + + /** 币种编码 */ + @Excel(name = "币种编码") + private String currencyCode; + + /** 成本 */ + @Excel(name = "成本") + private BigDecimal cost; + + /** 使用成本 */ + @Excel(name = "使用成本") + private BigDecimal useCost; + + +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java index fe097b7..fb10dbf 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantSecretKey.java @@ -1,6 +1,10 @@ package com.ff.base.system.domain; import java.math.BigDecimal; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -23,6 +27,7 @@ public class TenantSecretKey extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 租户key */ @@ -31,9 +36,11 @@ public class TenantSecretKey extends BaseEntity /** 密码 */ @Excel(name = "密码") + @JsonIgnore private String password; /** 注册时间 */ + @JsonSerialize(using = ToStringSerializer.class) @Excel(name = "注册时间") private Long registerTime; @@ -50,10 +57,12 @@ public class TenantSecretKey extends BaseEntity private String loginIp; /** 最后登录时间 */ + @JsonSerialize(using = ToStringSerializer.class) @Excel(name = "最后登录时间") private Long loginData; /** 上级代理id */ + @JsonSerialize(using = ToStringSerializer.class) @Excel(name = "上级代理id") private Long agentId; diff --git a/ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java b/ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java new file mode 100644 index 0000000..a92cbb6 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/dto/CreateTenantDTO.java @@ -0,0 +1,73 @@ +package com.ff.base.system.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.system.domain.TenantPlatform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 创建租户dto + * + * @author shi + * @date 2025/02/26 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class CreateTenantDTO implements Serializable { + private final static long serialVersionUID = 1L; + /** + * 注册时间 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long registerTime; + + /** 注册ip */ + private String registerIp; + + /** 注册ip的城市 */ + private String registerIpCity; + + /** + * 代理id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long agentId; + /** + * 账户 + */ + private String account; + /** + * 密码 + */ + private String password; + + + /** 买分比例 */ + private BigDecimal scoreRatio; + + + + /** 租户类型 TenantType 枚举 */ + private Integer tenantType; + + + /** 透支比例 */ + private BigDecimal depositRatio; + + /** + * 租户代理平台利润 + */ + private List tenantPlatforms; + + +} diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java index b7e61d5..309b1eb 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java @@ -20,6 +20,14 @@ public interface TenantAgentMapper */ TenantAgent selectTenantAgentById(Long id); + /** + * 按帐户选择租户代理 + * + * @param account 账户 + * @return {@link TenantAgent } + */ + TenantAgent selectTenantAgentByAccount(String account); + /** * 查询代理列表 * diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java new file mode 100644 index 0000000..92cb060 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java @@ -0,0 +1,61 @@ +package com.ff.base.system.mapper; + +import java.util.List; +import com.ff.base.system.domain.TenantPlatform; + +/** + * 租户成本管理Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface TenantPlatformMapper +{ + /** + * 查询租户成本管理 + * + * @param id 租户成本管理主键 + * @return 租户成本管理 + */ + TenantPlatform selectTenantPlatformById(Long id); + + /** + * 查询租户成本管理列表 + * + * @param tenantPlatform 租户成本管理 + * @return 租户成本管理集合 + */ + List selectTenantPlatformList(TenantPlatform tenantPlatform); + + /** + * 新增租户成本管理 + * + * @param tenantPlatform 租户成本管理 + * @return 结果 + */ + int insertTenantPlatform(TenantPlatform tenantPlatform); + + /** + * 修改租户成本管理 + * + * @param tenantPlatform 租户成本管理 + * @return 结果 + */ + int updateTenantPlatform(TenantPlatform tenantPlatform); + + /** + * 删除租户成本管理 + * + * @param id 租户成本管理主键 + * @return 结果 + */ + int deleteTenantPlatformById(Long id); + + /** + * 批量删除租户成本管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantPlatformByIds(Long[] ids); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java index 59d8d5b..1f55c55 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java @@ -20,6 +20,24 @@ public interface ITenantAgentService */ TenantAgent selectTenantAgentById(Long id); + /** + * 登录 + * + * @param username 用户名 + * @param password 密码 + * @return {@link String } + */ + String login(String username, String password); + + /** + * 按帐户选择租户代理 + * + * @param account 账户 + * @return {@link TenantAgent } + */ + TenantAgent selectTenantAgentByAccount(String account); + + /** * 查询代理列表 * @@ -36,6 +54,14 @@ public interface ITenantAgentService */ int insertTenantAgent(TenantAgent tenantAgent); + /** + * 创建租户代理 + * + * @param tenantAgent 租户代理人 + * @return int + */ + int createTenantAgent(TenantAgent tenantAgent); + /** * 修改代理 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java new file mode 100644 index 0000000..664e047 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java @@ -0,0 +1,61 @@ +package com.ff.base.system.service; + +import java.util.List; +import com.ff.base.system.domain.TenantPlatform; + +/** + * 租户成本管理Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ITenantPlatformService +{ + /** + * 查询租户成本管理 + * + * @param id 租户成本管理主键 + * @return 租户成本管理 + */ + TenantPlatform selectTenantPlatformById(Long id); + + /** + * 查询租户成本管理列表 + * + * @param tenantPlatform 租户成本管理 + * @return 租户成本管理集合 + */ + List selectTenantPlatformList(TenantPlatform tenantPlatform); + + /** + * 新增租户成本管理 + * + * @param tenantPlatform 租户成本管理 + * @return 结果 + */ + int insertTenantPlatform(TenantPlatform tenantPlatform); + + /** + * 修改租户成本管理 + * + * @param tenantPlatform 租户成本管理 + * @return 结果 + */ + int updateTenantPlatform(TenantPlatform tenantPlatform); + + /** + * 批量删除租户成本管理 + * + * @param ids 需要删除的租户成本管理主键集合 + * @return 结果 + */ + int deleteTenantPlatformByIds(Long[] ids); + + /** + * 删除租户成本管理信息 + * + * @param id 租户成本管理主键 + * @return 结果 + */ + int deleteTenantPlatformById(Long id); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java index 8937157..f94fa3a 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantSecretKeyService.java @@ -2,6 +2,7 @@ package com.ff.base.system.service; import java.util.List; import com.ff.base.system.domain.TenantSecretKey; +import com.ff.base.system.dto.CreateTenantDTO; import com.ff.base.system.dto.TenantSecretKeyDTO; /** @@ -70,6 +71,15 @@ public interface ITenantSecretKeyService */ int insertTenantSecretKey(TenantSecretKey tenantSecretKey); + + /** + * 创建租户 + * + * @param createTenantDTO 创建租户dto + * @return {@link Integer } + */ + Integer createTenant(CreateTenantDTO createTenantDTO); + /** * 修改用户租户密钥 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java index ac391b0..c376ed7 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java @@ -2,12 +2,33 @@ package com.ff.base.system.service.impl; import java.util.List; +import com.ff.base.constant.Constants; +import com.ff.base.core.domain.model.LoginForm; +import com.ff.base.core.domain.model.LoginUser; +import com.ff.base.enums.LoginType; +import com.ff.base.exception.ServiceException; +import com.ff.base.exception.user.UserPasswordNotMatchException; +import com.ff.base.manager.AsyncManager; +import com.ff.base.manager.factory.AsyncFactory; +import com.ff.base.security.context.AuthenticationContextHolder; import com.ff.base.system.domain.TenantAgent; +import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.mapper.TenantAgentMapper; import com.ff.base.system.service.ITenantAgentService; import com.ff.base.utils.DateUtils; +import com.ff.base.utils.MessageUtils; +import com.ff.base.utils.ip.IpUtils; +import com.ff.base.web.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; +import org.springframework.util.Assert; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; /** * 代理Service业务层处理 @@ -16,11 +37,18 @@ import org.springframework.stereotype.Service; * @date 2025-02-25 */ @Service -public class TenantAgentServiceImpl implements ITenantAgentService -{ +public class TenantAgentServiceImpl implements ITenantAgentService { @Autowired private TenantAgentMapper tenantAgentMapper; + + @Resource + private AuthenticationManager authenticationManager; + + @Resource + private TokenService tokenService; + + /** * 查询代理 * @@ -28,11 +56,59 @@ public class TenantAgentServiceImpl implements ITenantAgentService * @return 代理 */ @Override - public TenantAgent selectTenantAgentById(Long id) - { + public TenantAgent selectTenantAgentById(Long id) { return tenantAgentMapper.selectTenantAgentById(id); } + @Override + public String login(String username, String password) { + // 用户验证 + Authentication authentication = null; + try { + + + LoginForm loginForm = new LoginForm(); + loginForm.setAccountName(username); + loginForm.setPassword(password); + loginForm.setLoginType(LoginType.AGENT.getValue()); + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, loginForm); + AuthenticationContextHolder.setContext(authenticationToken); + authentication = authenticationManager.authenticate(authenticationToken); + } catch (Exception e) { + if (e instanceof BadCredentialsException) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } else { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } finally { + AuthenticationContextHolder.clearContext(); + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + + //更新租户信息 + TenantAgent tenantAgent = new TenantAgent(); + tenantAgent.setId(loginUser.getUserId()); + tenantAgent.setLoginIp(IpUtils.getIpAddr()); + tenantAgent.setLoginData(DateUtils.getNowDate()); + tenantAgentMapper.updateTenantAgent(tenantAgent); + // 生成token + return tokenService.createToken(loginUser); + } + + /** + * 按帐户选择租户代理 + * + * @param account 账户 + * @return {@link TenantAgent } + */ + @Override + public TenantAgent selectTenantAgentByAccount(String account) { + return tenantAgentMapper.selectTenantAgentByAccount(account); + } + /** * 查询代理列表 * @@ -40,8 +116,7 @@ public class TenantAgentServiceImpl implements ITenantAgentService * @return 代理 */ @Override - public List selectTenantAgentList(TenantAgent tenantAgent) - { + public List selectTenantAgentList(TenantAgent tenantAgent) { return tenantAgentMapper.selectTenantAgentList(tenantAgent); } @@ -52,12 +127,27 @@ public class TenantAgentServiceImpl implements ITenantAgentService * @return 结果 */ @Override - public int insertTenantAgent(TenantAgent tenantAgent) - { + public int insertTenantAgent(TenantAgent tenantAgent) { tenantAgent.setCreateTime(DateUtils.getNowDate()); return tenantAgentMapper.insertTenantAgent(tenantAgent); } + /** + * 创建租户代理 + * + * @param tenantAgent 租户代理人 + * @return int + */ + @Override + public synchronized int createTenantAgent(TenantAgent tenantAgent) { + TenantAgent tenantAgentByAccount = this.selectTenantAgentByAccount(tenantAgent.getAccount()); + if (!ObjectUtils.isEmpty(tenantAgentByAccount)) { + return 0; + } + + return this.insertTenantAgent(tenantAgent); + } + /** * 修改代理 * @@ -65,8 +155,7 @@ public class TenantAgentServiceImpl implements ITenantAgentService * @return 结果 */ @Override - public int updateTenantAgent(TenantAgent tenantAgent) - { + public int updateTenantAgent(TenantAgent tenantAgent) { tenantAgent.setUpdateTime(DateUtils.getNowDate()); return tenantAgentMapper.updateTenantAgent(tenantAgent); } @@ -78,8 +167,7 @@ public class TenantAgentServiceImpl implements ITenantAgentService * @return 结果 */ @Override - public int deleteTenantAgentByIds(Long[] ids) - { + public int deleteTenantAgentByIds(Long[] ids) { return tenantAgentMapper.deleteTenantAgentByIds(ids); } @@ -90,8 +178,7 @@ public class TenantAgentServiceImpl implements ITenantAgentService * @return 结果 */ @Override - public int deleteTenantAgentById(Long id) - { + public int deleteTenantAgentById(Long id) { return tenantAgentMapper.deleteTenantAgentById(id); } } diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java new file mode 100644 index 0000000..34bce54 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.base.system.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.base.system.mapper.TenantPlatformMapper; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.service.ITenantPlatformService; +import cn.hutool.core.util.IdUtil; + + +/** + * 租户成本管理Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class TenantPlatformServiceImpl implements ITenantPlatformService +{ + @Autowired + private TenantPlatformMapper tenantPlatformMapper; + + /** + * 查询租户成本管理 + * + * @param id 租户成本管理主键 + * @return 租户成本管理 + */ + @Override + public TenantPlatform selectTenantPlatformById(Long id) + { + return tenantPlatformMapper.selectTenantPlatformById(id); + } + + /** + * 查询租户成本管理列表 + * + * @param tenantPlatform 租户成本管理 + * @return 租户成本管理 + */ + @Override + public List selectTenantPlatformList(TenantPlatform tenantPlatform) + { + return tenantPlatformMapper.selectTenantPlatformList(tenantPlatform); + } + + /** + * 新增租户成本管理 + * + * @param tenantPlatform 租户成本管理 + * @return 结果 + */ + @Override + public int insertTenantPlatform(TenantPlatform tenantPlatform) + { + tenantPlatform.setId(IdUtil.getSnowflakeNextId()); + tenantPlatform.setCreateTime(DateUtils.getNowDate()); + return tenantPlatformMapper.insertTenantPlatform(tenantPlatform); + } + + /** + * 修改租户成本管理 + * + * @param tenantPlatform 租户成本管理 + * @return 结果 + */ + @Override + public int updateTenantPlatform(TenantPlatform tenantPlatform) + { + tenantPlatform.setUpdateTime(DateUtils.getNowDate()); + return tenantPlatformMapper.updateTenantPlatform(tenantPlatform); + } + + /** + * 批量删除租户成本管理 + * + * @param ids 需要删除的租户成本管理主键 + * @return 结果 + */ + @Override + public int deleteTenantPlatformByIds(Long[] ids) + { + return tenantPlatformMapper.deleteTenantPlatformByIds(ids); + } + + /** + * 删除租户成本管理信息 + * + * @param id 租户成本管理主键 + * @return 结果 + */ + @Override + public int deleteTenantPlatformById(Long id) + { + return tenantPlatformMapper.deleteTenantPlatformById(id); + } +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java index 6f12f2e..09ee360 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantSecretKeyServiceImpl.java @@ -8,18 +8,26 @@ import com.ff.base.constant.Constants; import com.ff.base.core.domain.model.LoginForm; import com.ff.base.core.domain.model.LoginUser; import com.ff.base.enums.LoginType; +import com.ff.base.enums.OperationType; +import com.ff.base.enums.QuotaType; import com.ff.base.exception.ServiceException; import com.ff.base.exception.user.UserPasswordNotMatchException; import com.ff.base.manager.AsyncManager; import com.ff.base.manager.factory.AsyncFactory; import com.ff.base.security.context.AuthenticationContextHolder; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.dto.CreateTenantDTO; import com.ff.base.system.dto.TenantSecretKeyDTO; +import com.ff.base.system.service.ITenantPlatformService; import com.ff.base.utils.DateUtils; import com.ff.base.utils.MessageUtils; import com.ff.base.utils.NumberUtils; +import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.ip.IpUtils; +import com.ff.base.utils.uuid.IdUtils; import com.ff.base.web.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -29,6 +37,7 @@ import com.ff.base.system.mapper.TenantSecretKeyMapper; import com.ff.base.system.domain.TenantSecretKey; import com.ff.base.system.service.ITenantSecretKeyService; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import javax.annotation.Resource; @@ -48,8 +57,13 @@ public class TenantSecretKeyServiceImpl implements ITenantSecretKeyService { @Resource + @Lazy private AuthenticationManager authenticationManager; + + @Resource + private ITenantPlatformService tenantPlatformService; + /** * 登录 * @@ -126,11 +140,11 @@ public class TenantSecretKeyServiceImpl implements ITenantSecretKeyService { */ @Override public synchronized String generateTenantSn() { - String sn = NumberUtils.generateRandomCode(); + String sn = NumberUtils.generateRandomCode(3); while (!CollectionUtils.isEmpty(tenantSecretKeyMapper.selectTenantSecretKeyList(TenantSecretKey.builder() .tenantSn(sn) .build()))) { - sn = NumberUtils.generateRandomCode(); + sn = NumberUtils.generateRandomCode(3); } return sn; } @@ -170,6 +184,50 @@ public class TenantSecretKeyServiceImpl implements ITenantSecretKeyService { return tenantSecretKeyMapper.insertTenantSecretKey(tenantSecretKey); } + /** + * 创建租户 + * + * @param createTenantDTO 创建租户dto + * @return {@link Integer } + */ + @Override + public synchronized Integer createTenant(CreateTenantDTO createTenantDTO) { + + List tenantSecretKeys = this.selectTenantSecretKeyList(TenantSecretKey.builder() + .tenantKey(createTenantDTO.getAccount()) + .build()); + if (!CollectionUtils.isEmpty(tenantSecretKeys)) { + return 0; + } + + //创建租户 + TenantSecretKey tenantSecretKey = new TenantSecretKey(); + tenantSecretKey.setAgentId(createTenantDTO.getAgentId()); + tenantSecretKey.setRegisterIp(createTenantDTO.getRegisterIp()); + tenantSecretKey.setRegisterTime(createTenantDTO.getRegisterTime()); + tenantSecretKey.setRegisterIpCity(createTenantDTO.getRegisterIpCity()); + + tenantSecretKey.setTenantKey(createTenantDTO.getAccount()); + tenantSecretKey.setPassword(SecurityUtils.encryptPassword(createTenantDTO.getPassword())); + tenantSecretKey.setTenantSn(this.generateTenantSn()); + tenantSecretKey.setTenantSecret(IdUtils.simpleUUID()); + tenantSecretKey.setDepositRatio(createTenantDTO.getDepositRatio()); + tenantSecretKey.setTenantType(createTenantDTO.getTenantType()); + tenantSecretKey.setCreateBy(createTenantDTO.getAccount()); + tenantSecretKey.setTenantStatus(Boolean.TRUE); + int insertedTenantSecretKey = this.insertTenantSecretKey(tenantSecretKey); + if (insertedTenantSecretKey > 0) { + for (TenantPlatform tenantPlatform : createTenantDTO.getTenantPlatforms()) { + tenantPlatform.setTenantId(tenantSecretKey.getId()); + tenantPlatform.setCreateBy(createTenantDTO.getAccount()); + tenantPlatformService.insertTenantPlatform(tenantPlatform); + } + + } + + return insertedTenantSecretKey; + } + /** * 修改用户租户密钥 * diff --git a/ff-base/src/main/java/com/ff/base/utils/NumberUtils.java b/ff-base/src/main/java/com/ff/base/utils/NumberUtils.java index 5724cbd..bfc3134 100644 --- a/ff-base/src/main/java/com/ff/base/utils/NumberUtils.java +++ b/ff-base/src/main/java/com/ff/base/utils/NumberUtils.java @@ -64,12 +64,12 @@ public class NumberUtils { * * @return {@link String } */ - public static String generateRandomCode() { + public static String generateRandomCode(Integer size) { Random random = new Random(); StringBuilder sb = new StringBuilder(); // 每位字符可以是字母(A-Z, a-z)或数字(0-9) - for (int i = 0; i < 3; i++) { + for (int i = 0; i sysRoles = new ArrayList<>(); + sysRoles.add(sysRole); + sysUser.setRoles(sysRoles); + sysUser.setRoleId(sysRole.getRoleId()); + sysUser.setRoleIds(new Long[]{sysRole.getRoleId()}); + + + return new LoginUser(tenantAgent.getId(),null, sysUser, menuService.selectMenuPermsByRoleId(sysRole.getRoleId())); + } +} diff --git a/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml b/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml index 4384590..b7ca06d 100644 --- a/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml +++ b/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml @@ -18,15 +18,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select id, account, password, register_time, register_ip, register_ip_city, login_ip, login_data, tenant_status, create_by, create_time, update_by, update_time from ff_tenant_agent + select id,currency_agreement,wallet_address, account, password, register_time, register_ip, register_ip_city, login_ip, login_data, tenant_status, create_by, create_time, update_by, update_time from ff_tenant_agent @@ -43,6 +47,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + insert into ff_tenant_agent @@ -58,6 +67,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time, update_by, update_time, + currency_agreement, + wallet_address, #{account}, @@ -72,6 +83,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createTime}, #{updateBy}, #{updateTime}, + #{currencyAgreement}, + #{walletAddress}, @@ -90,6 +103,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + currency_agreement = #{currencyAgreement}, + wallet_address = #{walletAddress}, where id = #{id} diff --git a/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml new file mode 100644 index 0000000..54884c7 --- /dev/null +++ b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + select id, tenant_id, platform_code, currency_code, cost, use_cost, create_by, create_time, update_by, update_time from ff_tenant_platform + + + + + + + + insert into ff_tenant_platform + + id, + tenant_id, + platform_code, + currency_code, + cost, + use_cost, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{tenantId}, + #{platformCode}, + #{currencyCode}, + #{cost}, + #{useCost}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_platform + + tenant_id = #{tenantId}, + platform_code = #{platformCode}, + currency_code = #{currencyCode}, + cost = #{cost}, + use_cost = #{useCost}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_platform where id = #{id} + + + + delete from ff_tenant_platform where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-admin/pom.xml b/ff-game/pom.xml similarity index 99% rename from ff-admin/pom.xml rename to ff-game/pom.xml index c742d67..ee0cfce 100644 --- a/ff-admin/pom.xml +++ b/ff-game/pom.xml @@ -9,7 +9,7 @@ com.ff - ff-admin + ff-game 0.0.1 ff-admin ff-admin diff --git a/ff-admin/src/main/java/com/ff/FFApplication.java b/ff-game/src/main/java/com/ff/FFApplication.java similarity index 100% rename from ff-admin/src/main/java/com/ff/FFApplication.java rename to ff-game/src/main/java/com/ff/FFApplication.java diff --git a/ff-admin/src/main/java/com/ff/FFServletInitializer.java b/ff-game/src/main/java/com/ff/FFServletInitializer.java similarity index 100% rename from ff-admin/src/main/java/com/ff/FFServletInitializer.java rename to ff-game/src/main/java/com/ff/FFServletInitializer.java diff --git a/ff-game/src/main/java/com/ff/agent/controller/AgentController.java b/ff-game/src/main/java/com/ff/agent/controller/AgentController.java new file mode 100644 index 0000000..a924092 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/AgentController.java @@ -0,0 +1,137 @@ +package com.ff.agent.controller; + + +import + com.ff.agent.dto.AgentTenantSecretKeyDTO; +import com.ff.agent.dto.AgentCreateTenantDTO; +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.OperationType; +import com.ff.base.enums.QuotaType; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.dto.CreateTenantDTO; +import com.ff.base.system.dto.TenantSecretKeyDTO; +import com.ff.base.system.service.ISysDeptService; +import com.ff.base.system.service.ISysRoleService; +import com.ff.base.system.service.ISysUserService; +import com.ff.base.utils.DateUtils; +import com.ff.base.utils.bean.BeanUtils; +import com.ff.base.utils.ip.IpUtils; +import com.ff.base.system.domain.TenantSecretKey; +import com.ff.common.domain.TenantAgentPlatform; +import com.ff.common.dto.BalanceChangesDTO; +import com.ff.common.service.ITenantGameQuotaService; +import com.ff.base.system.service.ITenantSecretKeyService; +import com.ff.base.system.service.ITenantPlatformService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +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; + + + + /** + * 列表 + * + * @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 AgentCreateTenantDTO agentCreateTenantDTO) { + + //构造租户的充值信息 + List tenantPlatforms = new ArrayList<>(); + for (TenantAgentPlatform tenantAgentPlatform : agentCreateTenantDTO.getTenantAgentPlatforms()) { + TenantPlatform tenantPlatform = new TenantPlatform(); + BeanUtils.copyProperties(tenantAgentPlatform, tenantPlatform); + tenantPlatforms.add(tenantPlatform); + } + + + //创建租户 + Integer tenant = tenantSecretKeyService.createTenant(CreateTenantDTO.builder() + .registerTime(DateUtils.getNowDate()) + .registerIp(IpUtils.getIpAddr()) + .agentId(getUserId()) + .account(agentCreateTenantDTO.getAccount()) + .password(agentCreateTenantDTO.getPassword()) + .scoreRatio(agentCreateTenantDTO.getScoreRatio()) + .tenantType(agentCreateTenantDTO.getTenantType()) + .depositRatio(agentCreateTenantDTO.getDepositRatio()) + .tenantPlatforms(tenantPlatforms) + .build()); + + if (tenant > 0) { + //信誉额度 + if (!ObjectUtils.isEmpty(agentCreateTenantDTO.getRealBalance())) { + tenantGameQuotaService.balanceChanges(BalanceChangesDTO.builder() + .isOut(Boolean.TRUE) + .currencyCode(Constants.USDT) + .tenantKey(agentCreateTenantDTO.getAccount()) + .balance(agentCreateTenantDTO.getRealBalance()) + .operationType(OperationType.TENANT_RECHARGE.getCode()) + .quotaType(QuotaType.REPUTATION.getCode()) + .remark(OperationType.TENANT_RECHARGE.getDescription()) + .build()); + + } + } + + return toAjax(tenant); + } + + +} diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java new file mode 100644 index 0000000..6c18054 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java @@ -0,0 +1,122 @@ +package com.ff.agent.controller; + +import java.math.BigDecimal; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.util.NumberUtil; +import com.ff.agent.domain.TenantAgentWithdrawal; +import com.ff.agent.service.ITenantAgentInviteService; +import com.ff.agent.service.ITenantAgentWithdrawalService; +import com.ff.base.annotation.Excel; +import com.ff.base.constant.Constants; +import com.ff.base.enums.CommissionApprovalStatus; +import com.ff.base.system.domain.TenantAgent; +import com.ff.base.system.service.ITenantAgentService; +import com.github.pagehelper.util.StringUtil; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; +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.agent.domain.TenantAgentCommission; +import com.ff.agent.service.ITenantAgentCommissionService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 代理佣金管理 Controller + * + * @author shi + * @date 2025-02-26 + */ +@RestController +@RequestMapping("/agent/commission") +public class TenantAgentCommissionController extends BaseController { + @Autowired + private ITenantAgentCommissionService tenantAgentCommissionService; + + @Resource + private ITenantAgentWithdrawalService tenantAgentWithdrawalService; + + @Resource + private ITenantAgentService tenantAgentService; + + /** + * 查询代理佣金管理 列表 + */ + @PreAuthorize("@ss.hasPermi('agent:commission:list')") + @GetMapping("/list") + public TableDataInfo list(TenantAgentCommission tenantAgentCommission) { + startPage(); + tenantAgentCommission.setAgentId(getUserId()); + List list = tenantAgentCommissionService.selectTenantAgentCommissionList(tenantAgentCommission); + return getDataTable(list); + } + + + /** + * 获取代理佣金管理 详细信息 + */ + @PreAuthorize("@ss.hasPermi('agent:commission:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(tenantAgentCommissionService.selectTenantAgentCommissionById(id)); + } + + + /** + * 修改代理佣金管理 + */ + @PreAuthorize("@ss.hasPermi('agent:commission:edit')") + @Log(title = "代理佣金管理 ", businessType = BusinessType.UPDATE) + @PutMapping + @Transactional + public synchronized AjaxResult edit() { + + //查询钱包 + TenantAgent tenantAgent = tenantAgentService.selectTenantAgentById(getUserId()); + Assert.isTrue(tenantAgent.getTenantStatus(), "当前租户已被停用"); + Assert.isTrue(!StringUtil.isEmpty(tenantAgent.getWalletAddress()) && + !StringUtil.isEmpty(tenantAgent.getCurrencyAgreement()), "钱包地址为空"); + + + //查询代理佣金信息 + TenantAgentCommission agentCommission = new TenantAgentCommission(); + agentCommission.setAgentId(getUserId()); + agentCommission.setApprovalStatus(CommissionApprovalStatus.UNWITHDRAWN.getValue()); + List list = tenantAgentCommissionService.selectTenantAgentCommissionList(agentCommission); + + BigDecimal usdtBalance = list.stream().map(TenantAgentCommission::getUsdtBalance).reduce(NumberUtil::add).get(); + Assert.isTrue(usdtBalance.compareTo(BigDecimal.ZERO) > 0, "佣金待提现余额为0"); + + TenantAgentWithdrawal tenantAgentWithdrawal = TenantAgentWithdrawal.builder() + .agentId(getUserId()) + .commissionBalance(usdtBalance) + .currencyAgreement(tenantAgent.getWalletAddress()) + .walletAddress(tenantAgent.getWalletAddress()) + .build(); + tenantAgentWithdrawalService.insertTenantAgentWithdrawal(tenantAgentWithdrawal); + for (TenantAgentCommission commission : list) { + commission.setAgentWithdrawalId(tenantAgentWithdrawal.getId()); + commission.setUpdateBy(getUsername()); + commission.setApprovalStatus(CommissionApprovalStatus.WITHDRAWING.getValue()); + tenantAgentCommissionService.updateTenantAgentCommission(commission); + } + return toAjax(1); + } + + +} diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java new file mode 100644 index 0000000..02e2ce7 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteController.java @@ -0,0 +1,114 @@ +package com.ff.agent.controller; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.Resource; + +import com.ff.agent.domain.TenantAgentInvitePlatform; +import com.ff.agent.dto.TenantAgentInviteDTO; +import com.ff.agent.service.ITenantAgentInvitePlatformService; +import com.ff.base.annotation.Anonymous; +import com.ff.base.constant.ConfigConstants; +import com.ff.base.enums.InviteType; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.service.ISysConfigService; +import com.ff.base.utils.bean.BeanUtils; +import com.ff.common.domain.TenantAgentPlatform; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ff.base.annotation.Log; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.enums.BusinessType; +import com.ff.agent.domain.TenantAgentInvite; +import com.ff.agent.service.ITenantAgentInviteService; +import com.ff.base.core.page.TableDataInfo; + +/** + * 代理邀请链接Controller + * + * @author shi + * @date 2025-02-25 + */ +@RestController +@RequestMapping("/agent/invite") +public class TenantAgentInviteController extends BaseController { + @Autowired + private ITenantAgentInviteService tenantAgentInviteService; + + @Resource + private ISysConfigService sysConfigService; + + + @Resource + private ITenantAgentInvitePlatformService tenantAgentInvitePlatformService; + + /** + * 获取代理邀请链接详细信息 + */ + @Anonymous + @GetMapping(value = "/code/{inviteCode}") + public AjaxResult getInfo(@PathVariable("inviteCode") String inviteCode) { + return success(tenantAgentInviteService.selectTenantAgentInviteByInviteCode(inviteCode)); + } + + + /** + * 查询代理邀请链接列表 + */ + @PreAuthorize("@ss.hasPermi('agent:invite:list')") + @GetMapping("/list") + public TableDataInfo list(TenantAgentInvite tenantAgentInvite) { + startPage(); + tenantAgentInvite.setAgentId(getUserId()); + List list = tenantAgentInviteService.selectTenantAgentInviteList(tenantAgentInvite); + return getDataTable(list); + } + + + /** + * 获取代理邀请链接详细信息 + */ + @PreAuthorize("@ss.hasPermi('agent:invite:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(tenantAgentInviteService.selectTenantAgentInviteById(id)); + } + + /** + * 新增代理邀请链接 + */ + @PreAuthorize("@ss.hasPermi('agent:invite:add')") + @Log(title = "代理邀请链接", businessType = BusinessType.INSERT) + @PostMapping + @Transactional + public AjaxResult add(@Validated @RequestBody TenantAgentInviteDTO tenantAgentInvite) { + tenantAgentInvite.setAgentId(getUserId()); + String inviteUrl = sysConfigService.selectConfigByKey(ConfigConstants.INVITE_URL); + tenantAgentInvite.setInviteCode(tenantAgentInviteService.getInviteCode()); + tenantAgentInvite.setInviteUrl(inviteUrl + "?code=" + tenantAgentInvite.getInviteCode()); + tenantAgentInvite.setCreateBy(getUsername()); + int result = tenantAgentInviteService.insertTenantAgentInvite(tenantAgentInvite); + if (result > 0 && InviteType.TENANT.getValue().equals(tenantAgentInvite.getInviteType())) { + // 保存平台注册利润信息 + List tenantAgentInvitePlatforms = tenantAgentInvite.getTenantAgentInvitePlatforms(); + for (TenantAgentInvitePlatform tenantAgentInvitePlatform : tenantAgentInvitePlatforms) { + tenantAgentInvitePlatform.setInviteId(tenantAgentInvite.getId()); + tenantAgentInvitePlatform.setCreateBy(getUsername()); + tenantAgentInvitePlatformService.insertTenantAgentInvitePlatform(tenantAgentInvitePlatform); + } + } + + return toAjax(result); + } + + +} diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInvitePlatformController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInvitePlatformController.java new file mode 100644 index 0000000..e4a34a7 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInvitePlatformController.java @@ -0,0 +1,48 @@ +package com.ff.agent.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.agent.domain.TenantAgentInvitePlatform; +import com.ff.agent.service.ITenantAgentInvitePlatformService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 平台邀请注册成本管理Controller + * + * @author shi + * @date 2025-02-27 + */ +@RestController +@RequestMapping("/agent/invite/platform") +public class TenantAgentInvitePlatformController extends BaseController +{ + @Autowired + private ITenantAgentInvitePlatformService tenantAgentInvitePlatformService; + + /** + * 查询平台邀请注册成本管理列表 + */ + @GetMapping("/select") + public AjaxResult select(TenantAgentInvitePlatform tenantAgentInvitePlatform) + { + + List list = tenantAgentInvitePlatformService.selectTenantAgentInvitePlatformList(tenantAgentInvitePlatform); + return AjaxResult.success(list); + } + +} diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java new file mode 100644 index 0000000..c28c2a5 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentInviteRegisterController.java @@ -0,0 +1,236 @@ +package com.ff.agent.controller; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.util.IdUtil; +import com.ff.agent.domain.TenantAgentCommission; +import com.ff.agent.domain.TenantAgentInvite; +import com.ff.agent.domain.TenantAgentInvitePlatform; +import com.ff.agent.domain.TenantAgentInviteRegister; +import com.ff.agent.dto.TenantAgentInviteRegisterAddDTO; +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; +import com.ff.agent.service.ITenantAgentCommissionService; +import com.ff.agent.service.ITenantAgentInvitePlatformService; +import com.ff.agent.service.ITenantAgentInviteRegisterService; +import com.ff.agent.service.ITenantAgentInviteService; +import com.ff.base.annotation.Anonymous; +import com.ff.base.annotation.Excel; +import com.ff.base.constant.Constants; +import com.ff.base.enums.*; +import com.ff.base.system.domain.TenantAgent; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.domain.TenantSecretKey; +import com.ff.base.system.dto.CreateTenantDTO; +import com.ff.base.system.dto.TenantSecretKeyDTO; +import com.ff.base.system.service.ITenantAgentService; +import com.ff.base.system.service.ITenantSecretKeyService; +import com.ff.base.utils.DateUtils; +import com.ff.base.utils.MessageUtils; +import com.ff.base.utils.SecurityUtils; +import com.ff.base.utils.bean.BeanUtils; +import com.ff.base.utils.ip.IpUtils; +import com.ff.base.utils.uuid.IdUtils; +import com.ff.common.dto.BalanceChangesDTO; +import com.ff.common.service.ITenantGameQuotaService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ff.base.annotation.Log; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 代理邀请注册Controller + * + * @author shi + * @date 2025-02-25 + */ +@RestController +@RequestMapping("/agent/invite/register") +public class TenantAgentInviteRegisterController extends BaseController { + @Autowired + private ITenantAgentInviteRegisterService tenantAgentInviteRegisterService; + + @Resource + private ITenantAgentInviteService tenantAgentInviteService; + + @Resource + private ITenantSecretKeyService tenantSecretKeyService; + + @Resource + private ITenantGameQuotaService tenantGameQuotaService; + + @Resource + private ITenantAgentCommissionService tenantAgentCommissionService; + + @Resource + private ITenantAgentService tenantAgentService; + + @Resource + private ITenantAgentInvitePlatformService tenantAgentInvitePlatformService; + + /** + * 查询代理邀请注册列表 + */ + @PreAuthorize("@ss.hasPermi('operation:register:list')") + @GetMapping("/list") + public TableDataInfo list(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO) { + startPage(); + tenantAgentInviteRegisterDTO.setAgentId(getUserId()); + List list = tenantAgentInviteRegisterService.selectTenantAgentInviteRegisterListDTO(tenantAgentInviteRegisterDTO); + return getDataTable(list); + } + + + /** + * 获取代理邀请注册详细信息 + */ + @PreAuthorize("@ss.hasPermi('operation:register:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(tenantAgentInviteRegisterService.selectTenantAgentInviteRegisterById(id)); + } + + /** + * 新增代理邀请注册 + */ + @Anonymous + @PostMapping + public AjaxResult add(@RequestBody TenantAgentInviteRegisterAddDTO tenantAgentInviteRegisterAddDTO) { + Assert.isTrue(tenantAgentInviteRegisterAddDTO.getPassword().equals(tenantAgentInviteRegisterAddDTO.getConfirmPassword()), "两次密码不一致"); + + List tenantAgentInvites = tenantAgentInviteService.selectTenantAgentInviteList(TenantAgentInvite.builder() + .inviteCode(tenantAgentInviteRegisterAddDTO.getInviteCode()) + .build()); + Assert.isTrue(!CollectionUtils.isEmpty(tenantAgentInvites), "邀请码错误"); + + TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyByTenantKey(tenantAgentInviteRegisterAddDTO.getAccount()); + Assert.isTrue(ObjectUtils.isEmpty(tenantSecretKey), MessageUtils.message("operation.tenant.account.already.used")); + + List tenantAgentInviteRegisters = tenantAgentInviteRegisterService.selectTenantAgentInviteRegisterList(TenantAgentInviteRegister.builder() + .account(tenantAgentInviteRegisterAddDTO.getAccount()) + .build()); + Assert.isTrue(CollectionUtils.isEmpty(tenantAgentInviteRegisters), MessageUtils.message("operation.tenant.account.already.used")); + + + TenantAgentInviteRegister tenantAgentInviteRegister = new TenantAgentInviteRegister(); + tenantAgentInviteRegister.setAgentId(tenantAgentInvites.get(0).getAgentId()); + tenantAgentInviteRegister.setRegisterTime(DateUtils.getNowDate()); + tenantAgentInviteRegister.setRegisterIp(IpUtils.getIpAddr()); + tenantAgentInviteRegister.setAccount(tenantAgentInviteRegisterAddDTO.getAccount()); + tenantAgentInviteRegister.setPassword(tenantAgentInviteRegisterAddDTO.getPassword()); + tenantAgentInviteRegister.setBalance(tenantAgentInvites.get(0).getBalance()); + tenantAgentInviteRegister.setInviteCode(tenantAgentInviteRegisterAddDTO.getInviteCode()); + tenantAgentInviteRegister.setOrderId(IdUtil.getSnowflakeNextIdStr()); + return toAjax(tenantAgentInviteRegisterService.insertTenantAgentInviteRegister(tenantAgentInviteRegister)); + } + + /** + * 编辑 + * + * @param dto 向 + */ + @Anonymous + @PutMapping + @Transactional + public void edit(@RequestBody TenantAgentInviteRegisterAddDTO dto) { + TenantAgentInviteRegister tenantAgentInviteRegister = tenantAgentInviteRegisterService.selectTenantAgentInviteRegisterById(dto.getId()); + + Assert.isTrue(tenantAgentInviteRegister.getStatus().equals(InviterRegisterStatus.PENDING.getValue()), "该账号已激活"); + + //查询注册配置信息 + TenantAgentInvite tenantAgentInvite = tenantAgentInviteService.selectTenantAgentInviteByInviteCode(tenantAgentInviteRegister.getInviteCode()); + + List tenantAgentInvitePlatforms = tenantAgentInvitePlatformService.selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform.builder() + .inviteId(tenantAgentInvite.getId()) + .build()); + Integer result = 0; + if (tenantAgentInvite.getInviteType().equals(InviteType.TENANT.getValue())) { + + List tenantPlatforms = new ArrayList<>(); + for (TenantAgentInvitePlatform tenantAgentInvitePlatform : tenantAgentInvitePlatforms) { + TenantPlatform tenantPlatform = new TenantPlatform(); + BeanUtils.copyProperties(tenantAgentInvitePlatform, tenantPlatform); + tenantPlatforms.add(tenantPlatform); + } + + //创建租户 + result = tenantSecretKeyService.createTenant(CreateTenantDTO.builder() + .registerTime(tenantAgentInviteRegister.getRegisterTime()) + .registerIp(tenantAgentInviteRegister.getRegisterIp()) + .agentId(tenantAgentInvite.getAgentId()) + .account(tenantAgentInviteRegister.getAccount()) + .password(tenantAgentInviteRegister.getPassword()) + .scoreRatio(tenantAgentInvite.getScoreRatio()) + .tenantType(tenantAgentInvite.getTenantType()) + .depositRatio(tenantAgentInvite.getDepositRatio()) + .tenantPlatforms(tenantPlatforms) + .build()); + //信誉额度 + if (result > 0 & !ObjectUtils.isEmpty(tenantAgentInvite.getRealBalance())) { + tenantGameQuotaService.balanceChanges(BalanceChangesDTO.builder() + .isOut(Boolean.TRUE) + .currencyCode(Constants.USDT) + .tenantKey(tenantAgentInviteRegister.getAccount()) + .balance(tenantAgentInvite.getRealBalance()) + .operationType(OperationType.TENANT_RECHARGE.getCode()) + .quotaType(QuotaType.REPUTATION.getCode()) + .remark(OperationType.TENANT_RECHARGE.getDescription()) + .build()); + + } + } else { + result = tenantAgentService.createTenantAgent(TenantAgent.builder() + .account(tenantAgentInviteRegister.getAccount()) + .password(tenantAgentInviteRegister.getPassword()) + .registerTime(tenantAgentInviteRegister.getRegisterTime()) + .registerIp(tenantAgentInviteRegister.getRegisterIp()) + .registerIpCity(tenantAgentInviteRegister.getRegisterIpCity()) + .tenantStatus(Boolean.TRUE) + .build()); + } + if (result > 0) { + //添加佣金信息 + TenantAgentCommission tenantAgentCommission = TenantAgentCommission.builder() + .agentId(tenantAgentInvite.getAgentId()) + .sourceId(tenantAgentInviteRegister.getId()) + .sourceType(CommissionSourceType.AGENT_TENANT_REGISTER.getValue()) + .commissionType(CommissionType.INVITE.getValue()) + .currencyCode(Constants.USDT) + .balance(tenantAgentInviteRegister.getBalance()) + .costBalance(BigDecimal.ZERO) + .merchantBalance(BigDecimal.ZERO) + .commissionBalance(tenantAgentInviteRegister.getBalance()) + .usdtBalance(tenantAgentInviteRegister.getBalance()) + .build(); + tenantAgentCommission.setCreateBy(tenantAgentInviteRegister.getAccount()); + tenantAgentCommissionService.insertTenantAgentCommission(tenantAgentCommission); + + //更新激活状态 + tenantAgentInviteRegister.setStatus(InviterRegisterStatus.ACTIVATED.getValue()); + tenantAgentInviteRegisterService.updateTenantAgentInviteRegister(tenantAgentInviteRegister); + + } + + + } + + +} diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java new file mode 100644 index 0000000..569d422 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentPlatformController.java @@ -0,0 +1,42 @@ +package com.ff.agent.controller; + +import java.util.List; + +import com.ff.base.core.page.PageDomain; +import com.ff.common.domain.TenantAgentPlatform; +import com.ff.common.service.ITenantAgentPlatformService; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.agent.domain.TenantAgentInvitePlatform; +import com.ff.agent.service.ITenantAgentInvitePlatformService; + +/** + * 平台邀请注册成本管理Controller + * + * @author shi + * @date 2025-02-27 + */ +@RestController +@RequestMapping("/agent/platform") +public class TenantAgentPlatformController extends BaseController +{ + @Autowired + private ITenantAgentPlatformService tenantAgentPlatformService; + + /** + * 查询平台邀请注册成本管理列表 + */ + @GetMapping("/select") + public AjaxResult select( ) + { + PageHelper.orderBy("platform_code desc,currency_code desc"); + List list = tenantAgentPlatformService.selectTenantAgentPlatformList(TenantAgentPlatform.builder().build()); + return AjaxResult.success(list); + } + +} diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentWithdrawalController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentWithdrawalController.java new file mode 100644 index 0000000..4aa0b60 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentWithdrawalController.java @@ -0,0 +1,73 @@ +package com.ff.agent.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.agent.domain.TenantAgentWithdrawal; +import com.ff.agent.service.ITenantAgentWithdrawalService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 代理申请提现审批管理Controller + * + * @author shi + * @date 2025-02-26 + */ +@RestController +@RequestMapping("/agent/withdrawal") +public class TenantAgentWithdrawalController extends BaseController +{ + @Autowired + private ITenantAgentWithdrawalService tenantAgentWithdrawalService; + + /** + * 查询代理申请提现审批管理列表 + */ + @PreAuthorize("@ss.hasPermi('agent:withdrawal:list')") + @GetMapping("/list") + public TableDataInfo list(TenantAgentWithdrawal tenantAgentWithdrawal) + { + startPage(); + tenantAgentWithdrawal.setAgentId(getUserId()); + List list = tenantAgentWithdrawalService.selectTenantAgentWithdrawalList(tenantAgentWithdrawal); + return getDataTable(list); + } + + + /** + * 获取代理申请提现审批管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('agent:withdrawal:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(tenantAgentWithdrawalService.selectTenantAgentWithdrawalById(id)); + } + + + /** + * 修改代理申请提现审批管理 + */ + @PreAuthorize("@ss.hasPermi('agent:withdrawal:edit')") + @Log(title = "代理申请提现审批管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TenantAgentWithdrawal tenantAgentWithdrawal) + { + return toAjax(tenantAgentWithdrawalService.updateTenantAgentWithdrawal(tenantAgentWithdrawal)); + } + +} diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java new file mode 100644 index 0000000..8e01ec6 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentCommission.java @@ -0,0 +1,87 @@ +package com.ff.agent.domain; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.*; + +/** + * 代理佣金管理 对象 ff_tenant_agent_commission + * + * @author shi + * @date 2025-02-26 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgentCommission extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 代理id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long agentId; + + /** 来源id */ + @Excel(name = "来源id") + @JsonSerialize(using = ToStringSerializer.class) + private Long sourceId; + + /** 来源类型 CommissionSourceType */ + @Excel(name = "来源类型 CommissionSourceType") + private Integer sourceType; + + /** 佣金类型 ff_tenant_agent_commission_type commissionType */ + @Excel(name = "佣金类型 commissionType") + private Integer commissionType; + + /** 币种 */ + @Excel(name = "币种") + private String currencyCode; + + /** 平台代码 */ + @Excel(name = "平台代码") + private String platformCode; + + /** 成本比例 */ + @Excel(name = "成本比例") + private BigDecimal costBalance; + + /** 商户比例 */ + @Excel(name = "商户比例") + private BigDecimal merchantBalance; + + /** 充值金额 */ + @Excel(name = "充值金额") + private BigDecimal balance; + + /** 佣金金额 */ + @Excel(name = "佣金金额") + private BigDecimal commissionBalance; + + /** USDT金额 */ + @Excel(name = "USDT金额") + private BigDecimal usdtBalance; + + /** 佣金审批状态 ff_tenant_agent_approval_status 0 未提现 1 提现中 1 已提现 */ + @Excel(name = "佣金审批状态 0 未提现 1 提现中 1 已提现") + private Integer approvalStatus; + + + /** + * 代理提款id + */ + private Long agentWithdrawalId; + + +} diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java new file mode 100644 index 0000000..b1047a9 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvite.java @@ -0,0 +1,73 @@ +package com.ff.agent.domain; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 代理邀请链接对象 ff_tenant_agent_invite + * + * @author shi + * @date 2025-02-25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgentInvite extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 代理id */ + @Excel(name = "代理id") + @JsonSerialize(using = ToStringSerializer.class) + private Long agentId; + + /** 缴费金额 */ + @Excel(name = "缴费金额") + private BigDecimal balance; + + /** 邀请类型 1 租户 2代理 ff_agent_invite_type */ + @Excel(name = "邀请类型 1 租户 2代理 ") + private Integer inviteType; + + /** 额度类型 TenantQuotaType 枚举 */ + @Excel(name = "额度类型 TenantQuotaType 枚举") + private Integer quotaType; + + /** 买分比例 */ + @Excel(name = "买分比例") + private BigDecimal scoreRatio; + + /** 租户类型 TenantType 枚举 */ + @Excel(name = "租户类型 TenantType 枚举") + private Integer tenantType; + + /** 透支比例 */ + @Excel(name = "透支比例") + private BigDecimal depositRatio; + + /** 信誉额度 */ + @Excel(name = "信誉额度") + private BigDecimal realBalance; + + /** 邀请码 */ + @Excel(name = "邀请码") + private String inviteCode; + + /** 邀请链接 */ + @Excel(name = "邀请链接") + private String inviteUrl; + +} diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java new file mode 100644 index 0000000..7071dd0 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInvitePlatform.java @@ -0,0 +1,53 @@ +package com.ff.agent.domain; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 平台邀请注册成本管理对象 ff_tenant_agent_invite_platform + * + * @author shi + * @date 2025-02-27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgentInvitePlatform extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 邀请码id */ + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "邀请码id", width = 30, dateFormat = "yyyy-MM-dd") + private Long inviteId; + + /** 平台编码 */ + @Excel(name = "平台编码") + private String platformCode; + + /** 币种编码 */ + @Excel(name = "币种编码") + private String currencyCode; + + /** 成本 */ + @Excel(name = "成本") + private BigDecimal cost; + + /** 使用成本 */ + @Excel(name = "使用成本") + private BigDecimal useCost; + + +} diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java new file mode 100644 index 0000000..c9e9782 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentInviteRegister.java @@ -0,0 +1,76 @@ +package com.ff.agent.domain; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 代理邀请注册对象 ff_tenant_agent_invite_register + * + * @author shi + * @date 2025-02-25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgentInviteRegister extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 代理id */ + @Excel(name = "代理id") + @JsonSerialize(using = ToStringSerializer.class) + private Long agentId; + + /** 邀请码 */ + @Excel(name = "邀请码") + private String inviteCode; + + /** 账号 */ + @Excel(name = "账号") + private String account; + + /** 密码 */ + @Excel(name = "密码") + private String password; + + /** 缴费金额 */ + @Excel(name = "缴费金额") + private BigDecimal balance; + + /** 注册时间 */ + @Excel(name = "注册时间") + @JsonSerialize(using = ToStringSerializer.class) + private Long registerTime; + + /** 注册IP */ + @Excel(name = "注册IP") + private String registerIp; + + /** 注册ip的城市 */ + @Excel(name = "注册ip的城市") + private String registerIpCity; + + /** 状态 1 待激活 2已激活 InviterRegisterStatus 枚举*/ + @Excel(name = "状态 1 待激活 2已激活") + private Integer status; + + /** + * 支付订单id + */ + private String orderId; + + +} diff --git a/ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java new file mode 100644 index 0000000..f9d0a7e --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/domain/TenantAgentWithdrawal.java @@ -0,0 +1,54 @@ +package com.ff.agent.domain; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 代理申请提现审批管理对象 ff_tenant_agent_withdrawal + * + * @author shi + * @date 2025-02-26 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgentWithdrawal extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + /** + * 代理id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long agentId; + + /** 佣金余额 */ + @Excel(name = "佣金余额") + private BigDecimal commissionBalance; + + /** 币种协议 */ + @Excel(name = "币种协议") + private String currencyAgreement; + + /** 钱包地址 */ + @Excel(name = "钱包地址") + private String walletAddress; + + /** 0 未提现 1 提现中 1 已提现 3 已拒绝 */ + @Excel(name = " 0 未提现 1 提现中 1 已提现 3 已拒绝") + private Integer approvalStatus; + + +} diff --git a/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java b/ff-game/src/main/java/com/ff/agent/dto/AgentCreateTenantDTO.java similarity index 74% rename from ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java rename to ff-game/src/main/java/com/ff/agent/dto/AgentCreateTenantDTO.java index 54cb0b8..191e3c9 100644 --- a/ff-admin/src/main/java/com/ff/agent/request/AgentCreateTenantRequest.java +++ b/ff-game/src/main/java/com/ff/agent/dto/AgentCreateTenantDTO.java @@ -1,8 +1,8 @@ -package com.ff.agent.request; +package com.ff.agent.dto; -import com.ff.base.annotation.Excel; import com.ff.base.xss.Xss; +import com.ff.common.domain.TenantAgentPlatform; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -10,6 +10,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; import java.math.BigDecimal; +import java.util.List; /** * 代理创建租户 @@ -18,7 +19,7 @@ import java.math.BigDecimal; * @date 2025/02/20 */ @Data -public class AgentCreateTenantRequest implements Serializable { +public class AgentCreateTenantDTO implements Serializable { private static final long serialVersionUID = -5561068216486978354L; @@ -53,6 +54,13 @@ public class AgentCreateTenantRequest implements Serializable { /** 透支比例 */ private BigDecimal depositRatio; + /** + * 租户代理平台利润 + */ + @NotNull(message = "租户代理平台列表不能为空") + @Size(min = 1, message = "租户代理平台列表必须包含至少一个元素") + private List tenantAgentPlatforms; + diff --git a/ff-admin/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java b/ff-game/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java similarity index 86% rename from ff-admin/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java rename to ff-game/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java index 277cfe5..a1b9e68 100644 --- a/ff-admin/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java +++ b/ff-game/src/main/java/com/ff/agent/dto/AgentTenantSecretKeyDTO.java @@ -1,6 +1,8 @@ package com.ff.agent.dto; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -25,6 +27,7 @@ public class AgentTenantSecretKeyDTO extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; @@ -41,6 +44,7 @@ public class AgentTenantSecretKeyDTO extends BaseEntity /** 最后登录时间 */ @Excel(name = "最后登录时间") + @JsonSerialize(using = ToStringSerializer.class) private Long loginData; @@ -51,6 +55,7 @@ public class AgentTenantSecretKeyDTO extends BaseEntity /** 代理id */ @Excel(name = "代理id") + @JsonSerialize(using = ToStringSerializer.class) private Long agentId; diff --git a/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteDTO.java b/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteDTO.java new file mode 100644 index 0000000..1a7c228 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteDTO.java @@ -0,0 +1,28 @@ +package com.ff.agent.dto; + +import com.ff.agent.domain.TenantAgentInvite; +import com.ff.agent.domain.TenantAgentInvitePlatform; +import com.ff.common.domain.TenantAgentPlatform; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + + +/** + * 租户代理邀请dto + * + * @author shi + * @date 2025/02/27 + */ +@Data +public class TenantAgentInviteDTO extends TenantAgentInvite { + + /** + * 租户代理平台利润 + */ + @NotNull(message = "租户代理平台列表不能为空") + @Size(min = 1, message = "租户代理平台列表必须包含至少一个元素") + private List tenantAgentInvitePlatforms; +} diff --git a/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterAddDTO.java b/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterAddDTO.java new file mode 100644 index 0000000..69cbb69 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterAddDTO.java @@ -0,0 +1,34 @@ +package com.ff.agent.dto; + + +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 租户代理邀请注册添加数据 + * + * @author shi + * @date 2025/02/25 + */ +@Data +public class TenantAgentInviteRegisterAddDTO extends BaseEntity { + + + /** 邀请码 */ + private String inviteCode; + + /** 账号 */ + private String account; + + /** 密码 */ + private String password; + + /** + * 确认密码 + */ + private String confirmPassword; + +} diff --git a/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterDTO.java b/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterDTO.java new file mode 100644 index 0000000..541af92 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/dto/TenantAgentInviteRegisterDTO.java @@ -0,0 +1,19 @@ +package com.ff.agent.dto; + +import com.ff.agent.domain.TenantAgentInviteRegister; +import com.ff.base.core.domain.BaseEntity; +import lombok.Data; + +/** + * 租户代理邀请注册dto + * + * @author shi + * @date 2025/02/26 + */ +@Data +public class TenantAgentInviteRegisterDTO extends TenantAgentInviteRegister { + /** + * 邀请类型 + */ + private Integer inviteType; +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java new file mode 100644 index 0000000..09adbfa --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java @@ -0,0 +1,61 @@ +package com.ff.agent.mapper; + +import java.util.List; +import com.ff.agent.domain.TenantAgentCommission; + +/** + * 代理佣金管理 Mapper接口 + * + * @author shi + * @date 2025-02-26 + */ +public interface TenantAgentCommissionMapper +{ + /** + * 查询代理佣金管理 + * + * @param id 代理佣金管理 主键 + * @return 代理佣金管理 + */ + TenantAgentCommission selectTenantAgentCommissionById(Long id); + + /** + * 查询代理佣金管理 列表 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 代理佣金管理 集合 + */ + List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); + + /** + * 新增代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + + /** + * 修改代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + + /** + * 删除代理佣金管理 + * + * @param id 代理佣金管理 主键 + * @return 结果 + */ + int deleteTenantAgentCommissionById(Long id); + + /** + * 批量删除代理佣金管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentCommissionByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java new file mode 100644 index 0000000..7f06873 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteMapper.java @@ -0,0 +1,70 @@ +package com.ff.agent.mapper; + +import java.util.List; +import com.ff.agent.domain.TenantAgentInvite; + +/** + * 代理邀请链接Mapper接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface TenantAgentInviteMapper +{ + /** + * 查询代理邀请链接 + * + * @param id 代理邀请链接主键 + * @return 代理邀请链接 + */ + TenantAgentInvite selectTenantAgentInviteById(Long id); + + + /** + * 按邀请代码选择租户代理邀请 + * + * @param inviteCode 邀请码 + * @return {@link TenantAgentInvite } + */ + TenantAgentInvite selectTenantAgentInviteByInviteCode(String inviteCode); + + /** + * 查询代理邀请链接列表 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 代理邀请链接集合 + */ + List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite); + + /** + * 新增代理邀请链接 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 结果 + */ + int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + + /** + * 修改代理邀请链接 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 结果 + */ + int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + + /** + * 删除代理邀请链接 + * + * @param id 代理邀请链接主键 + * @return 结果 + */ + int deleteTenantAgentInviteById(Long id); + + /** + * 批量删除代理邀请链接 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentInviteByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java new file mode 100644 index 0000000..3b292b9 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInvitePlatformMapper.java @@ -0,0 +1,61 @@ +package com.ff.agent.mapper; + +import java.util.List; +import com.ff.agent.domain.TenantAgentInvitePlatform; + +/** + * 平台邀请注册成本管理Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface TenantAgentInvitePlatformMapper +{ + /** + * 查询平台邀请注册成本管理 + * + * @param id 平台邀请注册成本管理主键 + * @return 平台邀请注册成本管理 + */ + TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id); + + /** + * 查询平台邀请注册成本管理列表 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 平台邀请注册成本管理集合 + */ + List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform); + + /** + * 新增平台邀请注册成本管理 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 结果 + */ + int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + + /** + * 修改平台邀请注册成本管理 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 结果 + */ + int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + + /** + * 删除平台邀请注册成本管理 + * + * @param id 平台邀请注册成本管理主键 + * @return 结果 + */ + int deleteTenantAgentInvitePlatformById(Long id); + + /** + * 批量删除平台邀请注册成本管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentInvitePlatformByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java new file mode 100644 index 0000000..0cf28f7 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentInviteRegisterMapper.java @@ -0,0 +1,72 @@ +package com.ff.agent.mapper; + +import com.ff.agent.domain.TenantAgentInviteRegister; +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; + +import java.util.List; + +/** + * 代理邀请注册Mapper接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface TenantAgentInviteRegisterMapper +{ + /** + * 查询代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 代理邀请注册 + */ + TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id); + + + /** + * 选择租户代理邀请注册列表dto + * + * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto + * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> + */ + List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO); + + /** + * 查询代理邀请注册列表 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 代理邀请注册集合 + */ + List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 新增代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 修改代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 删除代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterById(Long id); + + /** + * 批量删除代理邀请注册 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java new file mode 100644 index 0000000..fa2e10f --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentWithdrawalMapper.java @@ -0,0 +1,61 @@ +package com.ff.agent.mapper; + +import java.util.List; +import com.ff.agent.domain.TenantAgentWithdrawal; + +/** + * 代理申请提现审批管理Mapper接口 + * + * @author shi + * @date 2025-02-26 + */ +public interface TenantAgentWithdrawalMapper +{ + /** + * 查询代理申请提现审批管理 + * + * @param id 代理申请提现审批管理主键 + * @return 代理申请提现审批管理 + */ + TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id); + + /** + * 查询代理申请提现审批管理列表 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 代理申请提现审批管理集合 + */ + List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal); + + /** + * 新增代理申请提现审批管理 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 结果 + */ + int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + + /** + * 修改代理申请提现审批管理 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 结果 + */ + int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + + /** + * 删除代理申请提现审批管理 + * + * @param id 代理申请提现审批管理主键 + * @return 结果 + */ + int deleteTenantAgentWithdrawalById(Long id); + + /** + * 批量删除代理申请提现审批管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentWithdrawalByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java new file mode 100644 index 0000000..68debf0 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java @@ -0,0 +1,61 @@ +package com.ff.agent.service; + +import java.util.List; +import com.ff.agent.domain.TenantAgentCommission; + +/** + * 代理佣金管理 Service接口 + * + * @author shi + * @date 2025-02-26 + */ +public interface ITenantAgentCommissionService +{ + /** + * 查询代理佣金管理 + * + * @param id 代理佣金管理 主键 + * @return 代理佣金管理 + */ + TenantAgentCommission selectTenantAgentCommissionById(Long id); + + /** + * 查询代理佣金管理 列表 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 代理佣金管理 集合 + */ + List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); + + /** + * 新增代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + + /** + * 修改代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission); + + /** + * 批量删除代理佣金管理 + * + * @param ids 需要删除的代理佣金管理 主键集合 + * @return 结果 + */ + int deleteTenantAgentCommissionByIds(Long[] ids); + + /** + * 删除代理佣金管理 信息 + * + * @param id 代理佣金管理 主键 + * @return 结果 + */ + int deleteTenantAgentCommissionById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java new file mode 100644 index 0000000..47ca2bb --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInvitePlatformService.java @@ -0,0 +1,61 @@ +package com.ff.agent.service; + +import java.util.List; +import com.ff.agent.domain.TenantAgentInvitePlatform; + +/** + * 平台邀请注册成本管理Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ITenantAgentInvitePlatformService +{ + /** + * 查询平台邀请注册成本管理 + * + * @param id 平台邀请注册成本管理主键 + * @return 平台邀请注册成本管理 + */ + TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id); + + /** + * 查询平台邀请注册成本管理列表 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 平台邀请注册成本管理集合 + */ + List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform); + + /** + * 新增平台邀请注册成本管理 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 结果 + */ + int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + + /** + * 修改平台邀请注册成本管理 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 结果 + */ + int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform); + + /** + * 批量删除平台邀请注册成本管理 + * + * @param ids 需要删除的平台邀请注册成本管理主键集合 + * @return 结果 + */ + int deleteTenantAgentInvitePlatformByIds(Long[] ids); + + /** + * 删除平台邀请注册成本管理信息 + * + * @param id 平台邀请注册成本管理主键 + * @return 结果 + */ + int deleteTenantAgentInvitePlatformById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java new file mode 100644 index 0000000..40cd363 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteRegisterService.java @@ -0,0 +1,73 @@ +package com.ff.agent.service; + +import com.ff.agent.domain.TenantAgentInviteRegister; +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; + +import java.util.List; + +/** + * 代理邀请注册Service接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface ITenantAgentInviteRegisterService +{ + /** + * 查询代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 代理邀请注册 + */ + TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id); + + /** + * 查询代理邀请注册列表 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 代理邀请注册集合 + */ + List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister); + + + /** + * 选择租户代理邀请注册列表dto + * + * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto + * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> + */ + List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO); + + + /** + * 新增代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 修改代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister); + + /** + * 批量删除代理邀请注册 + * + * @param ids 需要删除的代理邀请注册主键集合 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterByIds(Long[] ids); + + /** + * 删除代理邀请注册信息 + * + * @param id 代理邀请注册主键 + * @return 结果 + */ + int deleteTenantAgentInviteRegisterById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java new file mode 100644 index 0000000..0b5afd9 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentInviteService.java @@ -0,0 +1,77 @@ +package com.ff.agent.service; + +import java.util.List; +import com.ff.agent.domain.TenantAgentInvite; + +/** + * 代理邀请链接Service接口 + * + * @author shi + * @date 2025-02-25 + */ +public interface ITenantAgentInviteService +{ + /** + * 查询代理邀请链接 + * + * @param id 代理邀请链接主键 + * @return 代理邀请链接 + */ + TenantAgentInvite selectTenantAgentInviteById(Long id); + + + /** + * 按邀请代码选择租户代理邀请 + * + * @param inviteCode 邀请码 + * @return {@link TenantAgentInvite } + */ + TenantAgentInvite selectTenantAgentInviteByInviteCode(String inviteCode); + + /** + * 查询代理邀请链接列表 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 代理邀请链接集合 + */ + List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite); + + /** + * 新增代理邀请链接 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 结果 + */ + int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + + /** + * 获取邀请码 + * + * @return {@link String } + */ + String getInviteCode(); + + /** + * 修改代理邀请链接 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 结果 + */ + int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite); + + /** + * 批量删除代理邀请链接 + * + * @param ids 需要删除的代理邀请链接主键集合 + * @return 结果 + */ + int deleteTenantAgentInviteByIds(Long[] ids); + + /** + * 删除代理邀请链接信息 + * + * @param id 代理邀请链接主键 + * @return 结果 + */ + int deleteTenantAgentInviteById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java new file mode 100644 index 0000000..e4dfc15 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentWithdrawalService.java @@ -0,0 +1,61 @@ +package com.ff.agent.service; + +import java.util.List; +import com.ff.agent.domain.TenantAgentWithdrawal; + +/** + * 代理申请提现审批管理Service接口 + * + * @author shi + * @date 2025-02-26 + */ +public interface ITenantAgentWithdrawalService +{ + /** + * 查询代理申请提现审批管理 + * + * @param id 代理申请提现审批管理主键 + * @return 代理申请提现审批管理 + */ + TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id); + + /** + * 查询代理申请提现审批管理列表 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 代理申请提现审批管理集合 + */ + List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal); + + /** + * 新增代理申请提现审批管理 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 结果 + */ + int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + + /** + * 修改代理申请提现审批管理 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 结果 + */ + int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal); + + /** + * 批量删除代理申请提现审批管理 + * + * @param ids 需要删除的代理申请提现审批管理主键集合 + * @return 结果 + */ + int deleteTenantAgentWithdrawalByIds(Long[] ids); + + /** + * 删除代理申请提现审批管理信息 + * + * @param id 代理申请提现审批管理主键 + * @return 结果 + */ + int deleteTenantAgentWithdrawalById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java new file mode 100644 index 0000000..26a7236 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.agent.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; +import com.ff.agent.mapper.TenantAgentCommissionMapper; +import com.ff.agent.domain.TenantAgentCommission; +import com.ff.agent.service.ITenantAgentCommissionService; + +/** + * 代理佣金管理 Service业务层处理 + * + * @author shi + * @date 2025-02-26 + */ +@Service +public class TenantAgentCommissionServiceImpl implements ITenantAgentCommissionService +{ + @Autowired + private TenantAgentCommissionMapper tenantAgentCommissionMapper; + + /** + * 查询代理佣金管理 + * + * @param id 代理佣金管理 主键 + * @return 代理佣金管理 + */ + @Override + public TenantAgentCommission selectTenantAgentCommissionById(Long id) + { + return tenantAgentCommissionMapper.selectTenantAgentCommissionById(id); + } + + /** + * 查询代理佣金管理 列表 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 代理佣金管理 + */ + @Override + public List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission) + { + return tenantAgentCommissionMapper.selectTenantAgentCommissionList(tenantAgentCommission); + } + + /** + * 新增代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + @Override + public int insertTenantAgentCommission(TenantAgentCommission tenantAgentCommission) + { + tenantAgentCommission.setCreateTime(DateUtils.getNowDate()); + tenantAgentCommission.setId(IdUtil.getSnowflakeNextId()); + return tenantAgentCommissionMapper.insertTenantAgentCommission(tenantAgentCommission); + } + + /** + * 修改代理佣金管理 + * + * @param tenantAgentCommission 代理佣金管理 + * @return 结果 + */ + @Override + public int updateTenantAgentCommission(TenantAgentCommission tenantAgentCommission) + { + tenantAgentCommission.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentCommissionMapper.updateTenantAgentCommission(tenantAgentCommission); + } + + /** + * 批量删除代理佣金管理 + * + * @param ids 需要删除的代理佣金管理 主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentCommissionByIds(Long[] ids) + { + return tenantAgentCommissionMapper.deleteTenantAgentCommissionByIds(ids); + } + + /** + * 删除代理佣金管理 信息 + * + * @param id 代理佣金管理 主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentCommissionById(Long id) + { + return tenantAgentCommissionMapper.deleteTenantAgentCommissionById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java new file mode 100644 index 0000000..768aa50 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInvitePlatformServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.agent.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.agent.mapper.TenantAgentInvitePlatformMapper; +import com.ff.agent.domain.TenantAgentInvitePlatform; +import com.ff.agent.service.ITenantAgentInvitePlatformService; +import cn.hutool.core.util.IdUtil; + + +/** + * 平台邀请注册成本管理Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class TenantAgentInvitePlatformServiceImpl implements ITenantAgentInvitePlatformService +{ + @Autowired + private TenantAgentInvitePlatformMapper tenantAgentInvitePlatformMapper; + + /** + * 查询平台邀请注册成本管理 + * + * @param id 平台邀请注册成本管理主键 + * @return 平台邀请注册成本管理 + */ + @Override + public TenantAgentInvitePlatform selectTenantAgentInvitePlatformById(Long id) + { + return tenantAgentInvitePlatformMapper.selectTenantAgentInvitePlatformById(id); + } + + /** + * 查询平台邀请注册成本管理列表 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 平台邀请注册成本管理 + */ + @Override + public List selectTenantAgentInvitePlatformList(TenantAgentInvitePlatform tenantAgentInvitePlatform) + { + return tenantAgentInvitePlatformMapper.selectTenantAgentInvitePlatformList(tenantAgentInvitePlatform); + } + + /** + * 新增平台邀请注册成本管理 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 结果 + */ + @Override + public int insertTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform) + { + tenantAgentInvitePlatform.setId(IdUtil.getSnowflakeNextId()); + tenantAgentInvitePlatform.setCreateTime(DateUtils.getNowDate()); + return tenantAgentInvitePlatformMapper.insertTenantAgentInvitePlatform(tenantAgentInvitePlatform); + } + + /** + * 修改平台邀请注册成本管理 + * + * @param tenantAgentInvitePlatform 平台邀请注册成本管理 + * @return 结果 + */ + @Override + public int updateTenantAgentInvitePlatform(TenantAgentInvitePlatform tenantAgentInvitePlatform) + { + tenantAgentInvitePlatform.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentInvitePlatformMapper.updateTenantAgentInvitePlatform(tenantAgentInvitePlatform); + } + + /** + * 批量删除平台邀请注册成本管理 + * + * @param ids 需要删除的平台邀请注册成本管理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentInvitePlatformByIds(Long[] ids) + { + return tenantAgentInvitePlatformMapper.deleteTenantAgentInvitePlatformByIds(ids); + } + + /** + * 删除平台邀请注册成本管理信息 + * + * @param id 平台邀请注册成本管理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentInvitePlatformById(Long id) + { + return tenantAgentInvitePlatformMapper.deleteTenantAgentInvitePlatformById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java new file mode 100644 index 0000000..36f3b2e --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteRegisterServiceImpl.java @@ -0,0 +1,113 @@ +package com.ff.agent.service.impl; + +import java.util.Collections; +import java.util.List; + +import cn.hutool.core.util.IdUtil; +import com.ff.agent.domain.TenantAgentInviteRegister; +import com.ff.agent.dto.TenantAgentInviteRegisterDTO; +import com.ff.agent.mapper.TenantAgentInviteRegisterMapper; +import com.ff.agent.service.ITenantAgentInviteRegisterService; +import com.ff.base.utils.DateUtils; +import com.ff.base.utils.uuid.IdUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 代理邀请注册Service业务层处理 + * + * @author shi + * @date 2025-02-25 + */ +@Service +public class TenantAgentInviteRegisterServiceImpl implements ITenantAgentInviteRegisterService +{ + @Autowired + private TenantAgentInviteRegisterMapper tenantAgentInviteRegisterMapper; + + /** + * 查询代理邀请注册 + * + * @param id 代理邀请注册主键 + * @return 代理邀请注册 + */ + @Override + public TenantAgentInviteRegister selectTenantAgentInviteRegisterById(Long id) + { + return tenantAgentInviteRegisterMapper.selectTenantAgentInviteRegisterById(id); + } + + /** + * 查询代理邀请注册列表 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 代理邀请注册 + */ + @Override + public List selectTenantAgentInviteRegisterList(TenantAgentInviteRegister tenantAgentInviteRegister) + { + return tenantAgentInviteRegisterMapper.selectTenantAgentInviteRegisterList(tenantAgentInviteRegister); + } + + /** + * 选择租户代理邀请注册列表dto + * + * @param tenantAgentInviteRegisterDTO 租户代理邀请注册dto + * @return {@link List }<{@link TenantAgentInviteRegisterDTO }> + */ + @Override + public List selectTenantAgentInviteRegisterListDTO(TenantAgentInviteRegisterDTO tenantAgentInviteRegisterDTO) { + return tenantAgentInviteRegisterMapper.selectTenantAgentInviteRegisterListDTO(tenantAgentInviteRegisterDTO); + } + + /** + * 新增代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + @Override + public int insertTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister) + { + tenantAgentInviteRegister.setId(IdUtil.getSnowflakeNextId()); + tenantAgentInviteRegister.setCreateTime(DateUtils.getNowDate()); + return tenantAgentInviteRegisterMapper.insertTenantAgentInviteRegister(tenantAgentInviteRegister); + } + + /** + * 修改代理邀请注册 + * + * @param tenantAgentInviteRegister 代理邀请注册 + * @return 结果 + */ + @Override + public int updateTenantAgentInviteRegister(TenantAgentInviteRegister tenantAgentInviteRegister) + { + tenantAgentInviteRegister.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentInviteRegisterMapper.updateTenantAgentInviteRegister(tenantAgentInviteRegister); + } + + /** + * 批量删除代理邀请注册 + * + * @param ids 需要删除的代理邀请注册主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentInviteRegisterByIds(Long[] ids) + { + return tenantAgentInviteRegisterMapper.deleteTenantAgentInviteRegisterByIds(ids); + } + + /** + * 删除代理邀请注册信息 + * + * @param id 代理邀请注册主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentInviteRegisterById(Long id) + { + return tenantAgentInviteRegisterMapper.deleteTenantAgentInviteRegisterById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java new file mode 100644 index 0000000..b87e3f2 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentInviteServiceImpl.java @@ -0,0 +1,128 @@ +package com.ff.agent.service.impl; + +import java.util.List; + +import cn.hutool.core.util.IdUtil; +import com.ff.base.utils.DateUtils; +import com.ff.base.utils.NumberUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ff.agent.mapper.TenantAgentInviteMapper; +import com.ff.agent.domain.TenantAgentInvite; +import com.ff.agent.service.ITenantAgentInviteService; +import org.springframework.util.CollectionUtils; + +/** + * 代理邀请链接Service业务层处理 + * + * @author shi + * @date 2025-02-25 + */ +@Service +public class TenantAgentInviteServiceImpl implements ITenantAgentInviteService +{ + @Autowired + private TenantAgentInviteMapper tenantAgentInviteMapper; + + /** + * 查询代理邀请链接 + * + * @param id 代理邀请链接主键 + * @return 代理邀请链接 + */ + @Override + public TenantAgentInvite selectTenantAgentInviteById(Long id) + { + return tenantAgentInviteMapper.selectTenantAgentInviteById(id); + } + + /** + * 按邀请代码选择租户代理邀请 + * + * @param inviteCode 邀请码 + * @return {@link TenantAgentInvite } + */ + @Override + public TenantAgentInvite selectTenantAgentInviteByInviteCode(String inviteCode) { + return tenantAgentInviteMapper.selectTenantAgentInviteByInviteCode( inviteCode); + } + + /** + * 查询代理邀请链接列表 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 代理邀请链接 + */ + @Override + public List selectTenantAgentInviteList(TenantAgentInvite tenantAgentInvite) + { + return tenantAgentInviteMapper.selectTenantAgentInviteList(tenantAgentInvite); + } + + /** + * 新增代理邀请链接 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 结果 + */ + @Override + public int insertTenantAgentInvite(TenantAgentInvite tenantAgentInvite) + { + tenantAgentInvite.setId(IdUtil.getSnowflakeNextId()); + tenantAgentInvite.setCreateTime(DateUtils.getNowDate()); + return tenantAgentInviteMapper.insertTenantAgentInvite(tenantAgentInvite); + } + + /** + * 获取邀请码 + * + * @return {@link String } + */ + @Override + public synchronized String getInviteCode() { + String inviteCode = NumberUtils.generateRandomCode(12); + while (!CollectionUtils.isEmpty(tenantAgentInviteMapper.selectTenantAgentInviteList(TenantAgentInvite.builder() + .inviteCode(inviteCode) + .build()))) { + inviteCode = NumberUtils.generateRandomCode(12); + } + return inviteCode; + } + + /**3 + * 修改代理邀请链接 + * + * @param tenantAgentInvite 代理邀请链接 + * @return 结果 + */ + @Override + public int updateTenantAgentInvite(TenantAgentInvite tenantAgentInvite) + { + tenantAgentInvite.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentInviteMapper.updateTenantAgentInvite(tenantAgentInvite); + } + + /** + * 批量删除代理邀请链接 + * + * @param ids 需要删除的代理邀请链接主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentInviteByIds(Long[] ids) + { + return tenantAgentInviteMapper.deleteTenantAgentInviteByIds(ids); + } + + /** + * 删除代理邀请链接信息 + * + * @param id 代理邀请链接主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentInviteById(Long id) + { + return tenantAgentInviteMapper.deleteTenantAgentInviteById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java new file mode 100644 index 0000000..d096828 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentWithdrawalServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.agent.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.agent.mapper.TenantAgentWithdrawalMapper; +import com.ff.agent.domain.TenantAgentWithdrawal; +import com.ff.agent.service.ITenantAgentWithdrawalService; +import cn.hutool.core.util.IdUtil; + + +/** + * 代理申请提现审批管理Service业务层处理 + * + * @author shi + * @date 2025-02-26 + */ +@Service +public class TenantAgentWithdrawalServiceImpl implements ITenantAgentWithdrawalService +{ + @Autowired + private TenantAgentWithdrawalMapper tenantAgentWithdrawalMapper; + + /** + * 查询代理申请提现审批管理 + * + * @param id 代理申请提现审批管理主键 + * @return 代理申请提现审批管理 + */ + @Override + public TenantAgentWithdrawal selectTenantAgentWithdrawalById(Long id) + { + return tenantAgentWithdrawalMapper.selectTenantAgentWithdrawalById(id); + } + + /** + * 查询代理申请提现审批管理列表 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 代理申请提现审批管理 + */ + @Override + public List selectTenantAgentWithdrawalList(TenantAgentWithdrawal tenantAgentWithdrawal) + { + return tenantAgentWithdrawalMapper.selectTenantAgentWithdrawalList(tenantAgentWithdrawal); + } + + /** + * 新增代理申请提现审批管理 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 结果 + */ + @Override + public int insertTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal) + { + tenantAgentWithdrawal.setId(IdUtil.getSnowflakeNextId()); + tenantAgentWithdrawal.setCreateTime(DateUtils.getNowDate()); + return tenantAgentWithdrawalMapper.insertTenantAgentWithdrawal(tenantAgentWithdrawal); + } + + /** + * 修改代理申请提现审批管理 + * + * @param tenantAgentWithdrawal 代理申请提现审批管理 + * @return 结果 + */ + @Override + public int updateTenantAgentWithdrawal(TenantAgentWithdrawal tenantAgentWithdrawal) + { + tenantAgentWithdrawal.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentWithdrawalMapper.updateTenantAgentWithdrawal(tenantAgentWithdrawal); + } + + /** + * 批量删除代理申请提现审批管理 + * + * @param ids 需要删除的代理申请提现审批管理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentWithdrawalByIds(Long[] ids) + { + return tenantAgentWithdrawalMapper.deleteTenantAgentWithdrawalByIds(ids); + } + + /** + * 删除代理申请提现审批管理信息 + * + * @param id 代理申请提现审批管理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentWithdrawalById(Long id) + { + return tenantAgentWithdrawalMapper.deleteTenantAgentWithdrawalById(id); + } +} diff --git a/ff-admin/src/main/java/com/ff/annotation/CheckHeader.java b/ff-game/src/main/java/com/ff/annotation/CheckHeader.java similarity index 100% rename from ff-admin/src/main/java/com/ff/annotation/CheckHeader.java rename to ff-game/src/main/java/com/ff/annotation/CheckHeader.java diff --git a/ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java similarity index 100% rename from ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java rename to ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java b/ff-game/src/main/java/com/ff/api/controller/ApiGameController.java similarity index 99% rename from ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java rename to ff-game/src/main/java/com/ff/api/controller/ApiGameController.java index fe5c4af..3fc8bdf 100644 --- a/ff-admin/src/main/java/com/ff/api/controller/ApiGameController.java +++ b/ff-game/src/main/java/com/ff/api/controller/ApiGameController.java @@ -185,6 +185,7 @@ public class ApiGameController extends BaseController { BigDecimal quota = tenantGameQuotaService.gameBalanceExchange(GameBalanceExchange.builder() .platformCode(gameExchangeBalanceRequest.getPlatformCode()) + .sourceId(gameExchangeBalanceRequest.getOrderId()) .currencyCode(gameExchangeBalanceRequest.getCurrencyCode()) .transferType(gameExchangeBalanceRequest.getTransferType()) .amount(gameExchangeBalanceRequest.getAmount()) @@ -490,10 +491,11 @@ public class ApiGameController extends BaseController { BigDecimal balance = gameExchangeMoney.getBalance(); balanceAll = NumberUtil.add(balanceAll, balance); - //操作租户额度 + //操作租户额度 tenantGameQuotaService.gameBalanceExchange(GameBalanceExchange.builder() .platformCode(gameExchangeMoney.getPlatformCode()) .currencyCode(gameExchangeMoney.getCurrencyCode()) + .sourceId(gameExchangeBalanceAllRequest.getOrderId()) .transferType(TransferType.ALL.getCode()) .amount(gameExchangeMoney.getBalance()) .account(member.getMemberAccount()) diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiMemberController.java b/ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/controller/ApiMemberController.java rename to ff-game/src/main/java/com/ff/api/controller/ApiMemberController.java diff --git a/ff-admin/src/main/java/com/ff/api/controller/ApiTenantController.java b/ff-game/src/main/java/com/ff/api/controller/ApiTenantController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/controller/ApiTenantController.java rename to ff-game/src/main/java/com/ff/api/controller/ApiTenantController.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameCancelFreeSpinRequest.java b/ff-game/src/main/java/com/ff/api/request/GameCancelFreeSpinRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameCancelFreeSpinRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameCancelFreeSpinRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameCreateFreeSpinRequest.java b/ff-game/src/main/java/com/ff/api/request/GameCreateFreeSpinRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameCreateFreeSpinRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameCreateFreeSpinRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameExchangeBalanceAllRequest.java b/ff-game/src/main/java/com/ff/api/request/GameExchangeBalanceAllRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameExchangeBalanceAllRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameExchangeBalanceAllRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java b/ff-game/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java similarity index 97% rename from ff-admin/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java index 77b0c0e..9f032ea 100644 --- a/ff-admin/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java +++ b/ff-game/src/main/java/com/ff/api/request/GameExchangeBalanceRequest.java @@ -46,7 +46,7 @@ public class GameExchangeBalanceRequest implements Serializable { * 金额 */ @NotNull(message = "amount不能为空") - @Min(value = 0, message = "amount最小值为0") + @Min(value = 1, message = "amount最小值为1") @Max(value = 999999999, message = "amount最大值为999999999") private BigDecimal amount; diff --git a/ff-admin/src/main/java/com/ff/api/request/GameGetBetRecordRequest.java b/ff-game/src/main/java/com/ff/api/request/GameGetBetRecordRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameGetBetRecordRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameGetBetRecordRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameGetDetailRequest.java b/ff-game/src/main/java/com/ff/api/request/GameGetDetailRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameGetDetailRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameGetDetailRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameGetFreeSpinDashflowRequest.java b/ff-game/src/main/java/com/ff/api/request/GameGetFreeSpinDashflowRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameGetFreeSpinDashflowRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameGetFreeSpinDashflowRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameKickMemeberAllRequest.java b/ff-game/src/main/java/com/ff/api/request/GameKickMemeberAllRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameKickMemeberAllRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameKickMemeberAllRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameKickMemeberRequest.java b/ff-game/src/main/java/com/ff/api/request/GameKickMemeberRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameKickMemeberRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameKickMemeberRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/GameLoginRequest.java b/ff-game/src/main/java/com/ff/api/request/GameLoginRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/GameLoginRequest.java rename to ff-game/src/main/java/com/ff/api/request/GameLoginRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/MemberCreateApiRequest.java b/ff-game/src/main/java/com/ff/api/request/MemberCreateApiRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/MemberCreateApiRequest.java rename to ff-game/src/main/java/com/ff/api/request/MemberCreateApiRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/MemberInfoAllApiRequest.java b/ff-game/src/main/java/com/ff/api/request/MemberInfoAllApiRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/MemberInfoAllApiRequest.java rename to ff-game/src/main/java/com/ff/api/request/MemberInfoAllApiRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/request/MemberInfoApiRequest.java b/ff-game/src/main/java/com/ff/api/request/MemberInfoApiRequest.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/request/MemberInfoApiRequest.java rename to ff-game/src/main/java/com/ff/api/request/MemberInfoApiRequest.java diff --git a/ff-admin/src/main/java/com/ff/api/response/GameBettingDetailsResponse.java b/ff-game/src/main/java/com/ff/api/response/GameBettingDetailsResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/GameBettingDetailsResponse.java rename to ff-game/src/main/java/com/ff/api/response/GameBettingDetailsResponse.java diff --git a/ff-admin/src/main/java/com/ff/api/response/GameExchangeBalanceResponse.java b/ff-game/src/main/java/com/ff/api/response/GameExchangeBalanceResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/GameExchangeBalanceResponse.java rename to ff-game/src/main/java/com/ff/api/response/GameExchangeBalanceResponse.java diff --git a/ff-admin/src/main/java/com/ff/api/response/GameFreeRecordResponse.java b/ff-game/src/main/java/com/ff/api/response/GameFreeRecordResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/GameFreeRecordResponse.java rename to ff-game/src/main/java/com/ff/api/response/GameFreeRecordResponse.java diff --git a/ff-admin/src/main/java/com/ff/api/response/GameResponse.java b/ff-game/src/main/java/com/ff/api/response/GameResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/GameResponse.java rename to ff-game/src/main/java/com/ff/api/response/GameResponse.java diff --git a/ff-admin/src/main/java/com/ff/api/response/MemberInfoAllResponse.java b/ff-game/src/main/java/com/ff/api/response/MemberInfoAllResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/MemberInfoAllResponse.java rename to ff-game/src/main/java/com/ff/api/response/MemberInfoAllResponse.java diff --git a/ff-admin/src/main/java/com/ff/api/response/MemberInfoResponse.java b/ff-game/src/main/java/com/ff/api/response/MemberInfoResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/MemberInfoResponse.java rename to ff-game/src/main/java/com/ff/api/response/MemberInfoResponse.java diff --git a/ff-admin/src/main/java/com/ff/api/response/TenantInfoResponse.java b/ff-game/src/main/java/com/ff/api/response/TenantInfoResponse.java similarity index 100% rename from ff-admin/src/main/java/com/ff/api/response/TenantInfoResponse.java rename to ff-game/src/main/java/com/ff/api/response/TenantInfoResponse.java diff --git a/ff-admin/src/main/java/com/ff/common/controller/CaptchaController.java b/ff-game/src/main/java/com/ff/common/controller/CaptchaController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/controller/CaptchaController.java rename to ff-game/src/main/java/com/ff/common/controller/CaptchaController.java diff --git a/ff-admin/src/main/java/com/ff/common/controller/CurrencyController.java b/ff-game/src/main/java/com/ff/common/controller/CurrencyController.java similarity index 91% rename from ff-admin/src/main/java/com/ff/common/controller/CurrencyController.java rename to ff-game/src/main/java/com/ff/common/controller/CurrencyController.java index 871960e..2f4cbaf 100644 --- a/ff-admin/src/main/java/com/ff/common/controller/CurrencyController.java +++ b/ff-game/src/main/java/com/ff/common/controller/CurrencyController.java @@ -46,6 +46,18 @@ public class CurrencyController extends BaseController return getDataTable(list); } + /** + * 选择 + * + * @param currency 货币 + * @return {@link AjaxResult } + */ + @GetMapping("/select") + public AjaxResult select(Currency currency) + { + List list = currencyService.selectCurrencyList(currency); + return AjaxResult.success(list); + } /** * 导出币种列表 */ diff --git a/ff-admin/src/main/java/com/ff/common/controller/LangController.java b/ff-game/src/main/java/com/ff/common/controller/LangController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/controller/LangController.java rename to ff-game/src/main/java/com/ff/common/controller/LangController.java diff --git a/ff-admin/src/main/java/com/ff/common/controller/TenantGameQuotaController.java b/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/controller/TenantGameQuotaController.java rename to ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaController.java diff --git a/ff-admin/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java b/ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java rename to ff-game/src/main/java/com/ff/common/controller/TenantGameQuotaFlowController.java diff --git a/ff-admin/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java b/ff-game/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java rename to ff-game/src/main/java/com/ff/common/controller/TenantQuotaExchangeController.java diff --git a/ff-admin/src/main/java/com/ff/common/domain/Currency.java b/ff-game/src/main/java/com/ff/common/domain/Currency.java similarity index 86% rename from ff-admin/src/main/java/com/ff/common/domain/Currency.java rename to ff-game/src/main/java/com/ff/common/domain/Currency.java index a573675..a763b79 100644 --- a/ff-admin/src/main/java/com/ff/common/domain/Currency.java +++ b/ff-game/src/main/java/com/ff/common/domain/Currency.java @@ -1,6 +1,9 @@ package com.ff.common.domain; import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; @@ -16,6 +19,7 @@ public class Currency extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 币种状态(0正常 1停用) */ diff --git a/ff-admin/src/main/java/com/ff/common/domain/Lang.java b/ff-game/src/main/java/com/ff/common/domain/Lang.java similarity index 80% rename from ff-admin/src/main/java/com/ff/common/domain/Lang.java rename to ff-game/src/main/java/com/ff/common/domain/Lang.java index a4799a3..ca5fa39 100644 --- a/ff-admin/src/main/java/com/ff/common/domain/Lang.java +++ b/ff-game/src/main/java/com/ff/common/domain/Lang.java @@ -1,5 +1,7 @@ package com.ff.common.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.Data; @@ -15,6 +17,7 @@ public class Lang extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 语言名称 */ diff --git a/ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java b/ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java new file mode 100644 index 0000000..e038672 --- /dev/null +++ b/ff-game/src/main/java/com/ff/common/domain/TenantAgentPlatform.java @@ -0,0 +1,45 @@ +package com.ff.common.domain; + +import java.math.BigDecimal; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 平台利润成本管理对象 ff_tenant_agent_platform + * + * @author shi + * @date 2025-02-27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgentPlatform extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 平台编码 */ + @Excel(name = "平台编码") + private String platformCode; + + /** 币种编码 */ + @Excel(name = "币种编码") + private String currencyCode; + + /** 成本 */ + @Excel(name = "成本") + private BigDecimal cost; + + /** 使用成本 */ + @Excel(name = "使用成本") + private BigDecimal useCost; + + +} diff --git a/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java b/ff-game/src/main/java/com/ff/common/domain/TenantGameQuota.java similarity index 85% rename from ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java rename to ff-game/src/main/java/com/ff/common/domain/TenantGameQuota.java index 93831e0..5abd269 100644 --- a/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuota.java +++ b/ff-game/src/main/java/com/ff/common/domain/TenantGameQuota.java @@ -3,6 +3,8 @@ package com.ff.common.domain; import java.math.BigDecimal; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -25,7 +27,7 @@ public class TenantGameQuota extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ - + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 租户key */ diff --git a/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java b/ff-game/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java similarity index 85% rename from ff-admin/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java rename to ff-game/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java index 1a7c1e2..2e81af4 100644 --- a/ff-admin/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java +++ b/ff-game/src/main/java/com/ff/common/domain/TenantGameQuotaFlow.java @@ -1,6 +1,9 @@ package com.ff.common.domain; import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -23,6 +26,7 @@ public class TenantGameQuotaFlow extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 租户key */ @@ -35,6 +39,7 @@ public class TenantGameQuotaFlow extends BaseEntity /** 用户账号id */ @Excel(name = "用户账号id") + @JsonSerialize(using = ToStringSerializer.class) private Long memberId; @@ -77,5 +82,10 @@ public class TenantGameQuotaFlow extends BaseEntity @Excel(name = "游戏额度之后") private BigDecimal balanceAfter; + /** + * 源ID + */ + private String sourceId; + } diff --git a/ff-admin/src/main/java/com/ff/common/domain/TenantQuotaExchange.java b/ff-game/src/main/java/com/ff/common/domain/TenantQuotaExchange.java similarity index 86% rename from ff-admin/src/main/java/com/ff/common/domain/TenantQuotaExchange.java rename to ff-game/src/main/java/com/ff/common/domain/TenantQuotaExchange.java index 078c76a..f06a0fa 100644 --- a/ff-admin/src/main/java/com/ff/common/domain/TenantQuotaExchange.java +++ b/ff-game/src/main/java/com/ff/common/domain/TenantQuotaExchange.java @@ -1,6 +1,9 @@ package com.ff.common.domain; import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -23,6 +26,7 @@ public class TenantQuotaExchange extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 币种编码 */ diff --git a/ff-admin/src/main/java/com/ff/common/dto/BalanceChangesDTO.java b/ff-game/src/main/java/com/ff/common/dto/BalanceChangesDTO.java similarity index 82% rename from ff-admin/src/main/java/com/ff/common/dto/BalanceChangesDTO.java rename to ff-game/src/main/java/com/ff/common/dto/BalanceChangesDTO.java index 42c2d05..8963c37 100644 --- a/ff-admin/src/main/java/com/ff/common/dto/BalanceChangesDTO.java +++ b/ff-game/src/main/java/com/ff/common/dto/BalanceChangesDTO.java @@ -1,6 +1,8 @@ package com.ff.common.dto; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Builder; @@ -43,6 +45,7 @@ public class BalanceChangesDTO implements Serializable { /** * 成员id */ + @JsonSerialize(using = ToStringSerializer.class) private Long memberId; @@ -59,4 +62,9 @@ public class BalanceChangesDTO implements Serializable { /** 币种代码 */ private String currencyCode; + + /** + * 源ID + */ + private String sourceId; } diff --git a/ff-admin/src/main/java/com/ff/common/dto/BalanceRealChangesDTO.java b/ff-game/src/main/java/com/ff/common/dto/BalanceRealChangesDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/dto/BalanceRealChangesDTO.java rename to ff-game/src/main/java/com/ff/common/dto/BalanceRealChangesDTO.java diff --git a/ff-admin/src/main/java/com/ff/common/dto/GameBalanceExchange.java b/ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java similarity index 93% rename from ff-admin/src/main/java/com/ff/common/dto/GameBalanceExchange.java rename to ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java index efdf972..328d977 100644 --- a/ff-admin/src/main/java/com/ff/common/dto/GameBalanceExchange.java +++ b/ff-game/src/main/java/com/ff/common/dto/GameBalanceExchange.java @@ -54,4 +54,9 @@ public class GameBalanceExchange implements Serializable { /** 租户key */ private String tenantKey; + /** + * 来源ID + */ + private String sourceId; + } diff --git a/ff-admin/src/main/java/com/ff/common/mapper/CurrencyMapper.java b/ff-game/src/main/java/com/ff/common/mapper/CurrencyMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/mapper/CurrencyMapper.java rename to ff-game/src/main/java/com/ff/common/mapper/CurrencyMapper.java diff --git a/ff-admin/src/main/java/com/ff/common/mapper/LangMapper.java b/ff-game/src/main/java/com/ff/common/mapper/LangMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/mapper/LangMapper.java rename to ff-game/src/main/java/com/ff/common/mapper/LangMapper.java diff --git a/ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java b/ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java new file mode 100644 index 0000000..6132429 --- /dev/null +++ b/ff-game/src/main/java/com/ff/common/mapper/TenantAgentPlatformMapper.java @@ -0,0 +1,61 @@ +package com.ff.common.mapper; + +import java.util.List; +import com.ff.common.domain.TenantAgentPlatform; + +/** + * 平台利润成本管理Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface TenantAgentPlatformMapper +{ + /** + * 查询平台利润成本管理 + * + * @param id 平台利润成本管理主键 + * @return 平台利润成本管理 + */ + TenantAgentPlatform selectTenantAgentPlatformById(Long id); + + /** + * 查询平台利润成本管理列表 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 平台利润成本管理集合 + */ + List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform); + + /** + * 新增平台利润成本管理 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 结果 + */ + int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); + + /** + * 修改平台利润成本管理 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 结果 + */ + int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); + + /** + * 删除平台利润成本管理 + * + * @param id 平台利润成本管理主键 + * @return 结果 + */ + int deleteTenantAgentPlatformById(Long id); + + /** + * 批量删除平台利润成本管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantAgentPlatformByIds(Long[] ids); +} diff --git a/ff-admin/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java b/ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java rename to ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaFlowMapper.java diff --git a/ff-admin/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java b/ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java rename to ff-game/src/main/java/com/ff/common/mapper/TenantGameQuotaMapper.java diff --git a/ff-admin/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java b/ff-game/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java rename to ff-game/src/main/java/com/ff/common/mapper/TenantQuotaExchangeMapper.java diff --git a/ff-admin/src/main/java/com/ff/common/service/ICurrencyService.java b/ff-game/src/main/java/com/ff/common/service/ICurrencyService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/ICurrencyService.java rename to ff-game/src/main/java/com/ff/common/service/ICurrencyService.java diff --git a/ff-admin/src/main/java/com/ff/common/service/ILangService.java b/ff-game/src/main/java/com/ff/common/service/ILangService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/ILangService.java rename to ff-game/src/main/java/com/ff/common/service/ILangService.java diff --git a/ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java b/ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java new file mode 100644 index 0000000..4306d71 --- /dev/null +++ b/ff-game/src/main/java/com/ff/common/service/ITenantAgentPlatformService.java @@ -0,0 +1,61 @@ +package com.ff.common.service; + +import java.util.List; +import com.ff.common.domain.TenantAgentPlatform; + +/** + * 平台利润成本管理Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ITenantAgentPlatformService +{ + /** + * 查询平台利润成本管理 + * + * @param id 平台利润成本管理主键 + * @return 平台利润成本管理 + */ + TenantAgentPlatform selectTenantAgentPlatformById(Long id); + + /** + * 查询平台利润成本管理列表 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 平台利润成本管理集合 + */ + List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform); + + /** + * 新增平台利润成本管理 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 结果 + */ + int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); + + /** + * 修改平台利润成本管理 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 结果 + */ + int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform); + + /** + * 批量删除平台利润成本管理 + * + * @param ids 需要删除的平台利润成本管理主键集合 + * @return 结果 + */ + int deleteTenantAgentPlatformByIds(Long[] ids); + + /** + * 删除平台利润成本管理信息 + * + * @param id 平台利润成本管理主键 + * @return 结果 + */ + int deleteTenantAgentPlatformById(Long id); +} diff --git a/ff-admin/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java b/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java rename to ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaFlowService.java diff --git a/ff-admin/src/main/java/com/ff/common/service/ITenantGameQuotaService.java b/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaService.java similarity index 98% rename from ff-admin/src/main/java/com/ff/common/service/ITenantGameQuotaService.java rename to ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaService.java index fbeea40..a043dd2 100644 --- a/ff-admin/src/main/java/com/ff/common/service/ITenantGameQuotaService.java +++ b/ff-game/src/main/java/com/ff/common/service/ITenantGameQuotaService.java @@ -2,6 +2,8 @@ package com.ff.common.service; import java.math.BigDecimal; import java.util.List; + +import com.ff.agent.dto.AgentCreateTenantDTO; import com.ff.common.domain.TenantGameQuota; import com.ff.common.dto.BalanceChangesDTO; import com.ff.common.dto.BalanceRealChangesDTO; @@ -75,6 +77,7 @@ public interface ITenantGameQuotaService Boolean balanceChanges(BalanceChangesDTO balanceChangesDTO); + /** * 真实余额变化 * diff --git a/ff-admin/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java b/ff-game/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java rename to ff-game/src/main/java/com/ff/common/service/ITenantQuotaExchangeService.java diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java rename to ff-game/src/main/java/com/ff/common/service/impl/CurrencyServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/LangServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/LangServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/impl/LangServiceImpl.java rename to ff-game/src/main/java/com/ff/common/service/impl/LangServiceImpl.java diff --git a/ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java new file mode 100644 index 0000000..1c45aa6 --- /dev/null +++ b/ff-game/src/main/java/com/ff/common/service/impl/TenantAgentPlatformServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.common.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.common.mapper.TenantAgentPlatformMapper; +import com.ff.common.domain.TenantAgentPlatform; +import com.ff.common.service.ITenantAgentPlatformService; +import cn.hutool.core.util.IdUtil; + + +/** + * 平台利润成本管理Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class TenantAgentPlatformServiceImpl implements ITenantAgentPlatformService +{ + @Autowired + private TenantAgentPlatformMapper tenantAgentPlatformMapper; + + /** + * 查询平台利润成本管理 + * + * @param id 平台利润成本管理主键 + * @return 平台利润成本管理 + */ + @Override + public TenantAgentPlatform selectTenantAgentPlatformById(Long id) + { + return tenantAgentPlatformMapper.selectTenantAgentPlatformById(id); + } + + /** + * 查询平台利润成本管理列表 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 平台利润成本管理 + */ + @Override + public List selectTenantAgentPlatformList(TenantAgentPlatform tenantAgentPlatform) + { + return tenantAgentPlatformMapper.selectTenantAgentPlatformList(tenantAgentPlatform); + } + + /** + * 新增平台利润成本管理 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 结果 + */ + @Override + public int insertTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform) + { + tenantAgentPlatform.setId(IdUtil.getSnowflakeNextId()); + tenantAgentPlatform.setCreateTime(DateUtils.getNowDate()); + return tenantAgentPlatformMapper.insertTenantAgentPlatform(tenantAgentPlatform); + } + + /** + * 修改平台利润成本管理 + * + * @param tenantAgentPlatform 平台利润成本管理 + * @return 结果 + */ + @Override + public int updateTenantAgentPlatform(TenantAgentPlatform tenantAgentPlatform) + { + tenantAgentPlatform.setUpdateTime(DateUtils.getNowDate()); + return tenantAgentPlatformMapper.updateTenantAgentPlatform(tenantAgentPlatform); + } + + /** + * 批量删除平台利润成本管理 + * + * @param ids 需要删除的平台利润成本管理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentPlatformByIds(Long[] ids) + { + return tenantAgentPlatformMapper.deleteTenantAgentPlatformByIds(ids); + } + + /** + * 删除平台利润成本管理信息 + * + * @param id 平台利润成本管理主键 + * @return 结果 + */ + @Override + public int deleteTenantAgentPlatformById(Long id) + { + return tenantAgentPlatformMapper.deleteTenantAgentPlatformById(id); + } +} diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java rename to ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaFlowServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java similarity index 96% rename from ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java rename to ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java index 2d53bb5..ec28f36 100644 --- a/ff-admin/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java +++ b/ff-game/src/main/java/com/ff/common/service/impl/TenantGameQuotaServiceImpl.java @@ -105,7 +105,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { */ @Override public int insertTenantGameQuota(TenantGameQuota tenantGameQuota) { - tenantGameQuota.setId(IdUtil.getSnowflakeNextId()); + tenantGameQuota.setId(IdUtil.getSnowflakeNextId()); tenantGameQuota.setCreateTime(DateUtils.getNowDate()); return tenantGameQuotaMapper.insertTenantGameQuota(tenantGameQuota); } @@ -196,6 +196,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { TenantGameQuotaFlow tenantGameQuotaFlow = TenantGameQuotaFlow.builder() .quotaType(balanceChangesDTO.getQuotaType()) .tenantKey(balanceChangesDTO.getTenantKey()) + .sourceId(balanceChangesDTO.getSourceId()) .isOut(balanceChangesDTO.getIsOut()) .platformCode(balanceChangesDTO.getPlatformCode()) .currencyCode(balanceChangesDTO.getCurrencyCode()) @@ -222,7 +223,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { */ @Override public Boolean balanceRealChanges(BalanceRealChangesDTO balanceRealChangesDTO) { - TenantGameQuota tenantGameQuota = this.selectTenantGameQuotaByTenantKey(balanceRealChangesDTO.getTenantKey(),QuotaType.REAL_BALANCE.getCode()); + TenantGameQuota tenantGameQuota = this.selectTenantGameQuotaByTenantKey(balanceRealChangesDTO.getTenantKey(), QuotaType.REAL_BALANCE.getCode()); BigDecimal balanceBefore = tenantGameQuota.getBalance(); BigDecimal balance = balanceRealChangesDTO.getBalance(); //如果有汇率 则需要计算真实扣除额度 @@ -329,7 +330,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .quotaType(quotaType) .tenantKey(gameBalanceExchange.getTenantKey()) .memberId(member.getId()) - .build()),BigDecimal.ZERO); + .build()), BigDecimal.ZERO); // 初始化平台额度 BigDecimal platformBalance = BigDecimal.ZERO; @@ -348,6 +349,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .currencyCode(gameBalanceExchange.getCurrencyCode()) .tenantKey(gameBalanceExchange.getTenantKey()) .balance(platformBalance) + .sourceId(gameBalanceExchange.getSourceId()) .memberId(member.getId()) .operationType(OperationType.API_BALANCE.getCode()) .remark(OperationType.API_BALANCE.getDescription()) @@ -358,6 +360,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { // 进行租户余额调整 this.balanceChanges(BalanceChangesDTO.builder() .isOut(isOut) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .actualBalance(tenantQuotaExchange.getActualBalance()) @@ -380,6 +383,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { // 假额度足够扣除本次所需金额 this.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.FALSE) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .tenantKey(tenantSecretKey.getTenantKey()) @@ -395,6 +399,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { balanceRequestAmount = amountToDeduct.subtract(falseQuotaBalance); this.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.FALSE) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .tenantKey(tenantSecretKey.getTenantKey()) @@ -410,6 +415,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { if (balanceRequestAmount.compareTo(BigDecimal.ZERO) > 0) { this.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.FALSE) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .actualBalance(tenantQuotaExchange.getActualBalance()) @@ -422,7 +428,9 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .build()); } } - return balanceRequestAmount; + + TenantGameQuota tenantGameQuota = this.selectTenantGameQuotaByTenantKey(gameBalanceExchange.getTenantKey(), QuotaType.BALANCE.getCode()); + return tenantGameQuota.getBalance(); } diff --git a/ff-admin/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java b/ff-game/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java rename to ff-game/src/main/java/com/ff/common/service/impl/TenantQuotaExchangeServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/config/ContentRefreshedEventListener.java b/ff-game/src/main/java/com/ff/config/ContentRefreshedEventListener.java similarity index 100% rename from ff-admin/src/main/java/com/ff/config/ContentRefreshedEventListener.java rename to ff-game/src/main/java/com/ff/config/ContentRefreshedEventListener.java diff --git a/ff-admin/src/main/java/com/ff/config/KeyConfig.java b/ff-game/src/main/java/com/ff/config/KeyConfig.java similarity index 100% rename from ff-admin/src/main/java/com/ff/config/KeyConfig.java rename to ff-game/src/main/java/com/ff/config/KeyConfig.java diff --git a/ff-admin/src/main/java/com/ff/config/SwaggerConfig.java b/ff-game/src/main/java/com/ff/config/SwaggerConfig.java similarity index 100% rename from ff-admin/src/main/java/com/ff/config/SwaggerConfig.java rename to ff-game/src/main/java/com/ff/config/SwaggerConfig.java diff --git a/ff-admin/src/main/java/com/ff/file/controller/FileController.java b/ff-game/src/main/java/com/ff/file/controller/FileController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/file/controller/FileController.java rename to ff-game/src/main/java/com/ff/file/controller/FileController.java diff --git a/ff-admin/src/main/java/com/ff/file/service/ISysFileService.java b/ff-game/src/main/java/com/ff/file/service/ISysFileService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/file/service/ISysFileService.java rename to ff-game/src/main/java/com/ff/file/service/ISysFileService.java diff --git a/ff-admin/src/main/java/com/ff/file/service/impl/LocalSysFileServiceImpl.java b/ff-game/src/main/java/com/ff/file/service/impl/LocalSysFileServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/file/service/impl/LocalSysFileServiceImpl.java rename to ff-game/src/main/java/com/ff/file/service/impl/LocalSysFileServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/api/IGamesService.java b/ff-game/src/main/java/com/ff/game/api/IGamesService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/IGamesService.java rename to ff-game/src/main/java/com/ff/game/api/IGamesService.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java b/ff-game/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java rename to ff-game/src/main/java/com/ff/game/api/jili/address/MyJILIAddressSource.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/client/JILIClient.java b/ff-game/src/main/java/com/ff/game/api/jili/client/JILIClient.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/client/JILIClient.java rename to ff-game/src/main/java/com/ff/game/api/jili/client/JILIClient.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordDataResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordDataResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordDataResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordDataResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIBetRecordResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILICancelFreeSpinResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILICancelFreeSpinResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILICancelFreeSpinResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILICancelFreeSpinResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILICreateFreeSpinResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILICreateFreeSpinResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILICreateFreeSpinResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILICreateFreeSpinResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILICreateMemberResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILICreateMemberResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILICreateMemberResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILICreateMemberResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIExchangeMoneyResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIExchangeMoneyResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIExchangeMoneyResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIExchangeMoneyResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGamesDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGamesDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGamesDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGamesDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGamesDataDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGamesDataDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGamesDataDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGamesDataDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGetFreeSpinDashflowResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGetFreeSpinDashflowResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGetFreeSpinDashflowResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGetFreeSpinDashflowResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGetGameDetailResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGetGameDetailResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIGetGameDetailResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIGetGameDetailResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberAllDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberAllDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberAllDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberAllDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIKickMemberDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILILoginWithoutRedirectResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILILoginWithoutRedirectResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILILoginWithoutRedirectResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILILoginWithoutRedirectResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIMemberInfoDTO.java b/ff-game/src/main/java/com/ff/game/api/jili/dto/JILIMemberInfoDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/dto/JILIMemberInfoDTO.java rename to ff-game/src/main/java/com/ff/game/api/jili/dto/JILIMemberInfoDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java rename to ff-game/src/main/java/com/ff/game/api/jili/service/impl/GamesJILIServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/BetRecordByTimeDTO.java b/ff-game/src/main/java/com/ff/game/api/request/BetRecordByTimeDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/BetRecordByTimeDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/BetRecordByTimeDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/CancelFreeSpinRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/CancelFreeSpinRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/CancelFreeSpinRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/CancelFreeSpinRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/CreateFreeSpinRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/CreateFreeSpinRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/CreateFreeSpinRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/CreateFreeSpinRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/CreateMemberRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/CreateMemberRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/CreateMemberRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/CreateMemberRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/ExchangeTransferMoneyRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/ExchangeTransferMoneyRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/ExchangeTransferMoneyRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/ExchangeTransferMoneyRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GameUniqueDTO.java b/ff-game/src/main/java/com/ff/game/api/request/GameUniqueDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GameUniqueDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/GameUniqueDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GamesBaseRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/GamesBaseRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GamesBaseRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/GamesBaseRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GamesDataBuildDTO.java b/ff-game/src/main/java/com/ff/game/api/request/GamesDataBuildDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GamesDataBuildDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/GamesDataBuildDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GamesLogin.java b/ff-game/src/main/java/com/ff/game/api/request/GamesLogin.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GamesLogin.java rename to ff-game/src/main/java/com/ff/game/api/request/GamesLogin.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GetFreeSpinDashflowRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/GetFreeSpinDashflowRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GetFreeSpinDashflowRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/GetFreeSpinDashflowRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GetGameDetailRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/GetGameDetailRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GetGameDetailRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/GetGameDetailRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/GetGameDetailResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/request/GetGameDetailResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/GetGameDetailResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/GetGameDetailResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/KickMemberAllDTO.java b/ff-game/src/main/java/com/ff/game/api/request/KickMemberAllDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/KickMemberAllDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/KickMemberAllDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/KickMemberRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/KickMemberRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/KickMemberRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/KickMemberRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/MemberInfoRequestDTO.java b/ff-game/src/main/java/com/ff/game/api/request/MemberInfoRequestDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/MemberInfoRequestDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/MemberInfoRequestDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/request/MemberInfoResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/request/MemberInfoResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/request/MemberInfoResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/request/MemberInfoResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java b/ff-game/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java rename to ff-game/src/main/java/com/ff/game/api/xk/address/MyXKAddressSource.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/client/XKClient.java b/ff-game/src/main/java/com/ff/game/api/xk/client/XKClient.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/client/XKClient.java rename to ff-game/src/main/java/com/ff/game/api/xk/client/XKClient.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKBetRecordResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKBetRecordResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKBetRecordResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKBetRecordResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKCreateMemberResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKCreateMemberResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKCreateMemberResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKCreateMemberResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKExchangeMoneyResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKExchangeMoneyResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKExchangeMoneyResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKExchangeMoneyResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKGamesDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKGamesDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKGamesDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKGamesDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKKickMemberAllDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKKickMemberAllDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKKickMemberAllDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKKickMemberAllDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKKickMemberDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKKickMemberDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKKickMemberDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKKickMemberDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKLoginWithoutRedirectResponseDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKLoginWithoutRedirectResponseDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKLoginWithoutRedirectResponseDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKLoginWithoutRedirectResponseDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/dto/XKMemberInfoDTO.java b/ff-game/src/main/java/com/ff/game/api/xk/dto/XKMemberInfoDTO.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/dto/XKMemberInfoDTO.java rename to ff-game/src/main/java/com/ff/game/api/xk/dto/XKMemberInfoDTO.java diff --git a/ff-admin/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java b/ff-game/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java rename to ff-game/src/main/java/com/ff/game/api/xk/service/impl/GamesXKServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/controller/GameBettingDetailsController.java b/ff-game/src/main/java/com/ff/game/controller/GameBettingDetailsController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/controller/GameBettingDetailsController.java rename to ff-game/src/main/java/com/ff/game/controller/GameBettingDetailsController.java diff --git a/ff-admin/src/main/java/com/ff/game/controller/GameController.java b/ff-game/src/main/java/com/ff/game/controller/GameController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/controller/GameController.java rename to ff-game/src/main/java/com/ff/game/controller/GameController.java diff --git a/ff-admin/src/main/java/com/ff/game/controller/GameExchangeMoneyController.java b/ff-game/src/main/java/com/ff/game/controller/GameExchangeMoneyController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/controller/GameExchangeMoneyController.java rename to ff-game/src/main/java/com/ff/game/controller/GameExchangeMoneyController.java diff --git a/ff-admin/src/main/java/com/ff/game/controller/GameFreeRecordController.java b/ff-game/src/main/java/com/ff/game/controller/GameFreeRecordController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/controller/GameFreeRecordController.java rename to ff-game/src/main/java/com/ff/game/controller/GameFreeRecordController.java diff --git a/ff-admin/src/main/java/com/ff/game/controller/GamePlatformController.java b/ff-game/src/main/java/com/ff/game/controller/GamePlatformController.java similarity index 85% rename from ff-admin/src/main/java/com/ff/game/controller/GamePlatformController.java rename to ff-game/src/main/java/com/ff/game/controller/GamePlatformController.java index 265e783..4719b5f 100644 --- a/ff-admin/src/main/java/com/ff/game/controller/GamePlatformController.java +++ b/ff-game/src/main/java/com/ff/game/controller/GamePlatformController.java @@ -2,6 +2,8 @@ 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; @@ -29,8 +31,7 @@ import com.ff.base.core.page.TableDataInfo; */ @RestController @RequestMapping("/game/platform") -public class GamePlatformController extends BaseController -{ +public class GamePlatformController extends BaseController { @Autowired private IGamePlatformService gamePlatformService; @@ -39,21 +40,29 @@ public class GamePlatformController extends BaseController */ @PreAuthorize("@ss.hasPermi('game:platform:list')") @GetMapping("/list") - public TableDataInfo list(GamePlatform gamePlatform) - { + public TableDataInfo list(GamePlatform gamePlatform) { startPage(); List list = gamePlatformService.selectGamePlatformList(gamePlatform); return getDataTable(list); } + /** + * 选择 + * + * @return {@link AjaxResult } + */ + @GetMapping("/select") + public AjaxResult select() { + 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) - { + public void export(HttpServletResponse response, GamePlatform gamePlatform) { List list = gamePlatformService.selectGamePlatformList(gamePlatform); ExcelUtil util = new ExcelUtil(GamePlatform.class); util.exportExcel(response, list, "平台管理数据"); @@ -64,8 +73,7 @@ public class GamePlatformController extends BaseController */ @PreAuthorize("@ss.hasPermi('game:platform:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(gamePlatformService.selectGamePlatformById(id)); } @@ -75,8 +83,7 @@ public class GamePlatformController extends BaseController @PreAuthorize("@ss.hasPermi('game:platform:add')") @Log(title = "平台管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody GamePlatform gamePlatform) - { + public AjaxResult add(@RequestBody GamePlatform gamePlatform) { return toAjax(gamePlatformService.insertGamePlatform(gamePlatform)); } @@ -86,8 +93,7 @@ public class GamePlatformController extends BaseController @PreAuthorize("@ss.hasPermi('game:platform:edit')") @Log(title = "平台管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody GamePlatform gamePlatform) - { + public AjaxResult edit(@RequestBody GamePlatform gamePlatform) { return toAjax(gamePlatformService.updateGamePlatform(gamePlatform)); } @@ -96,9 +102,8 @@ public class GamePlatformController extends BaseController */ @PreAuthorize("@ss.hasPermi('game:platform:remove')") @Log(title = "平台管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(gamePlatformService.deleteGamePlatformByIds(ids)); } } diff --git a/ff-admin/src/main/java/com/ff/game/controller/GameSecretKeyController.java b/ff-game/src/main/java/com/ff/game/controller/GameSecretKeyController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/controller/GameSecretKeyController.java rename to ff-game/src/main/java/com/ff/game/controller/GameSecretKeyController.java diff --git a/ff-admin/src/main/java/com/ff/game/domain/Game.java b/ff-game/src/main/java/com/ff/game/domain/Game.java similarity index 85% rename from ff-admin/src/main/java/com/ff/game/domain/Game.java rename to ff-game/src/main/java/com/ff/game/domain/Game.java index 4431765..68213cb 100644 --- a/ff-admin/src/main/java/com/ff/game/domain/Game.java +++ b/ff-game/src/main/java/com/ff/game/domain/Game.java @@ -1,5 +1,7 @@ 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; @@ -22,6 +24,7 @@ public class Game extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 排序 */ @@ -30,6 +33,7 @@ public class Game extends BaseEntity /** 游戏平台id */ @Excel(name = "游戏平台id") + @JsonSerialize(using = ToStringSerializer.class) private Long platformId; /** 游戏第三方id */ diff --git a/ff-admin/src/main/java/com/ff/game/domain/GameBettingDetails.java b/ff-game/src/main/java/com/ff/game/domain/GameBettingDetails.java similarity index 84% rename from ff-admin/src/main/java/com/ff/game/domain/GameBettingDetails.java rename to ff-game/src/main/java/com/ff/game/domain/GameBettingDetails.java index 2bea841..8d4927a 100644 --- a/ff-admin/src/main/java/com/ff/game/domain/GameBettingDetails.java +++ b/ff-game/src/main/java/com/ff/game/domain/GameBettingDetails.java @@ -1,6 +1,9 @@ package com.ff.game.domain; import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -23,6 +26,7 @@ public class GameBettingDetails extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; @@ -38,6 +42,7 @@ public class GameBettingDetails extends BaseEntity /** 会员id */ @Excel(name = "会员id") + @JsonSerialize(using = ToStringSerializer.class) private Long memberId; /** 游戏id */ @@ -46,6 +51,7 @@ public class GameBettingDetails extends BaseEntity /** 游戏id */ @Excel(name = "游戏id") + @JsonSerialize(using = ToStringSerializer.class) private Long gameId; /** 游戏类型 ff_game_type 字典 */ @@ -78,10 +84,12 @@ public class GameBettingDetails extends BaseEntity /** 游戏注单唯一值 */ @Excel(name = "游戏注单唯一值") + @JsonSerialize(using = ToStringSerializer.class) private Long wagersId; /** 投注时间 (Unix 时间戳) */ @Excel(name = "投注时间 (Unix 时间戳)") + @JsonSerialize(using = ToStringSerializer.class) private Long wagersTime; /** 投注金额 */ @@ -90,6 +98,7 @@ public class GameBettingDetails extends BaseEntity /** 派彩时间 (Unix 时间戳) */ @Excel(name = "派彩时间 (Unix 时间戳)") + @JsonSerialize(using = ToStringSerializer.class) private Long payoffTime; /** 派彩金额 */ @@ -99,6 +108,7 @@ public class GameBettingDetails extends BaseEntity /** 对帐时间 (Unix 时间戳) */ @Excel(name = "对帐时间 (Unix 时间戳)") + @JsonSerialize(using = ToStringSerializer.class) private Long settlementTime; /** 有效投注金额 ※注 1 */ diff --git a/ff-admin/src/main/java/com/ff/game/domain/GameExchangeMoney.java b/ff-game/src/main/java/com/ff/game/domain/GameExchangeMoney.java similarity index 90% rename from ff-admin/src/main/java/com/ff/game/domain/GameExchangeMoney.java rename to ff-game/src/main/java/com/ff/game/domain/GameExchangeMoney.java index a3a20f8..a02b518 100644 --- a/ff-admin/src/main/java/com/ff/game/domain/GameExchangeMoney.java +++ b/ff-game/src/main/java/com/ff/game/domain/GameExchangeMoney.java @@ -1,6 +1,9 @@ package com.ff.game.domain; import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -23,6 +26,7 @@ public class GameExchangeMoney extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 租户key */ @@ -44,6 +48,7 @@ public class GameExchangeMoney extends BaseEntity /** 会员id */ @Excel(name = "会员id") + @JsonSerialize(using = ToStringSerializer.class) private Long memberId; /** 游戏平台 */ diff --git a/ff-admin/src/main/java/com/ff/game/domain/GameFreeRecord.java b/ff-game/src/main/java/com/ff/game/domain/GameFreeRecord.java similarity index 82% rename from ff-admin/src/main/java/com/ff/game/domain/GameFreeRecord.java rename to ff-game/src/main/java/com/ff/game/domain/GameFreeRecord.java index 0712140..362c978 100644 --- a/ff-admin/src/main/java/com/ff/game/domain/GameFreeRecord.java +++ b/ff-game/src/main/java/com/ff/game/domain/GameFreeRecord.java @@ -1,5 +1,7 @@ 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; @@ -23,6 +25,7 @@ public class GameFreeRecord extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 币种编码 */ @@ -39,6 +42,7 @@ public class GameFreeRecord extends BaseEntity /** 会员id */ @Excel(name = "会员id") + @JsonSerialize(using = ToStringSerializer.class) private Long memberId; /** 用户账号 */ @@ -47,18 +51,22 @@ public class GameFreeRecord extends BaseEntity /** 游戏id */ @Excel(name = "游戏id ") + @JsonSerialize(using = ToStringSerializer.class) private Long gameId; /** 免费游戏局数可使用的开始时间 */ @Excel(name = "免费游戏局数可使用的开始时间") + @JsonSerialize(using = ToStringSerializer.class) private Long sendTime; /** 免费局数过期时间 */ @Excel(name = "免费局数过期时间") + @JsonSerialize(using = ToStringSerializer.class) private Long expiredTime; /** 免费局数记录更新时间 */ @Excel(name = "免费局数记录更新时间") + @JsonSerialize(using = ToStringSerializer.class) private Long freeUpdateTime; /** 免费局数赠送的游戏名称 */ diff --git a/ff-admin/src/main/java/com/ff/game/domain/GamePlatform.java b/ff-game/src/main/java/com/ff/game/domain/GamePlatform.java similarity index 86% rename from ff-admin/src/main/java/com/ff/game/domain/GamePlatform.java rename to ff-game/src/main/java/com/ff/game/domain/GamePlatform.java index 022ac7e..be1a547 100644 --- a/ff-admin/src/main/java/com/ff/game/domain/GamePlatform.java +++ b/ff-game/src/main/java/com/ff/game/domain/GamePlatform.java @@ -1,5 +1,7 @@ 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; @@ -22,6 +24,7 @@ public class GamePlatform extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 排序 */ diff --git a/ff-admin/src/main/java/com/ff/game/domain/GameSecretKey.java b/ff-game/src/main/java/com/ff/game/domain/GameSecretKey.java similarity index 85% rename from ff-admin/src/main/java/com/ff/game/domain/GameSecretKey.java rename to ff-game/src/main/java/com/ff/game/domain/GameSecretKey.java index b7c963b..e3784f2 100644 --- a/ff-admin/src/main/java/com/ff/game/domain/GameSecretKey.java +++ b/ff-game/src/main/java/com/ff/game/domain/GameSecretKey.java @@ -1,5 +1,7 @@ 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; @@ -22,6 +24,7 @@ public class GameSecretKey extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 平台 */ diff --git a/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java b/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java new file mode 100644 index 0000000..f505d6b --- /dev/null +++ b/ff-game/src/main/java/com/ff/game/dto/GameExchangeMoneyDTO.java @@ -0,0 +1,23 @@ +package com.ff.game.dto; + +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.domain.GameExchangeMoney; +import lombok.Data; + +/** + * 游戏兑换货币dto + * + * @author shi + * @date 2025/02/27 + */ +@Data +public class GameExchangeMoneyDTO extends GameExchangeMoney { + /** + * 会员帐户 + */ + private String memberAccount; + /** + * 游戏账户 + */ + private String gameAccount; +} diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java rename to ff-game/src/main/java/com/ff/game/mapper/GameBettingDetailsMapper.java diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java similarity index 82% rename from ff-admin/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java rename to ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java index 089132c..0d0a9ac 100644 --- a/ff-admin/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java +++ b/ff-game/src/main/java/com/ff/game/mapper/GameExchangeMoneyMapper.java @@ -2,6 +2,7 @@ package com.ff.game.mapper; import java.util.List; import com.ff.game.domain.GameExchangeMoney; +import com.ff.game.dto.GameExchangeMoneyDTO; /** * 会员金额转移记录Mapper接口 @@ -27,6 +28,14 @@ public interface GameExchangeMoneyMapper */ List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney); + /** + * 选择游戏兑换货币列表 + * + * @param gameExchangeMoneyDTO 游戏兑换货币dto + * @return {@link List }<{@link GameExchangeMoneyDTO }> + */ + List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO); + /** * 新增会员金额转移记录 * diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java rename to ff-game/src/main/java/com/ff/game/mapper/GameFreeRecordMapper.java diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GameMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/mapper/GameMapper.java rename to ff-game/src/main/java/com/ff/game/mapper/GameMapper.java diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GamePlatformMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GamePlatformMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/mapper/GamePlatformMapper.java rename to ff-game/src/main/java/com/ff/game/mapper/GamePlatformMapper.java diff --git a/ff-admin/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java b/ff-game/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java rename to ff-game/src/main/java/com/ff/game/mapper/GameSecretKeyMapper.java diff --git a/ff-admin/src/main/java/com/ff/game/service/IGameBettingDetailsService.java b/ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/IGameBettingDetailsService.java rename to ff-game/src/main/java/com/ff/game/service/IGameBettingDetailsService.java diff --git a/ff-admin/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java b/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java similarity index 80% rename from ff-admin/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java rename to ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java index b40b050..eb8ab59 100644 --- a/ff-admin/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java +++ b/ff-game/src/main/java/com/ff/game/service/IGameExchangeMoneyService.java @@ -1,7 +1,10 @@ package com.ff.game.service; import java.util.List; + +import com.ff.game.domain.GameBettingDetails; import com.ff.game.domain.GameExchangeMoney; +import com.ff.game.dto.GameExchangeMoneyDTO; /** * 会员金额转移记录Service接口 @@ -27,6 +30,14 @@ public interface IGameExchangeMoneyService */ List selectGameExchangeMoneyList(GameExchangeMoney gameExchangeMoney); + /** + * 选择游戏兑换货币列表 + * + * @param gameExchangeMoneyDTO 游戏兑换货币dto + * @return {@link List }<{@link GameExchangeMoneyDTO }> + */ + List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO); + /** * 新增会员金额转移记录 * diff --git a/ff-admin/src/main/java/com/ff/game/service/IGameFreeRecordService.java b/ff-game/src/main/java/com/ff/game/service/IGameFreeRecordService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/IGameFreeRecordService.java rename to ff-game/src/main/java/com/ff/game/service/IGameFreeRecordService.java diff --git a/ff-admin/src/main/java/com/ff/game/service/IGamePlatformService.java b/ff-game/src/main/java/com/ff/game/service/IGamePlatformService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/IGamePlatformService.java rename to ff-game/src/main/java/com/ff/game/service/IGamePlatformService.java diff --git a/ff-admin/src/main/java/com/ff/game/service/IGameSecretKeyService.java b/ff-game/src/main/java/com/ff/game/service/IGameSecretKeyService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/IGameSecretKeyService.java rename to ff-game/src/main/java/com/ff/game/service/IGameSecretKeyService.java diff --git a/ff-admin/src/main/java/com/ff/game/service/IGameService.java b/ff-game/src/main/java/com/ff/game/service/IGameService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/IGameService.java rename to ff-game/src/main/java/com/ff/game/service/IGameService.java diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/GameBettingDetailsServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java similarity index 90% rename from ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java index dc6d391..0ce564c 100644 --- a/ff-admin/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java +++ b/ff-game/src/main/java/com/ff/game/service/impl/GameExchangeMoneyServiceImpl.java @@ -1,9 +1,11 @@ package com.ff.game.service.impl; +import java.util.Collections; import java.util.List; import cn.hutool.core.util.IdUtil; import com.ff.base.utils.DateUtils; +import com.ff.game.dto.GameExchangeMoneyDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ff.game.mapper.GameExchangeMoneyMapper; @@ -46,6 +48,11 @@ public class GameExchangeMoneyServiceImpl implements IGameExchangeMoneyService return gameExchangeMoneyMapper.selectGameExchangeMoneyList(gameExchangeMoney); } + @Override + public List selectGameExchangeMoneyDTOList(GameExchangeMoneyDTO gameExchangeMoneyDTO) { + return gameExchangeMoneyMapper.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); + } + /** * 新增会员金额转移记录 * diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/GameFreeRecordServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/GamePlatformServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/GameSecretKeyServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/game/service/impl/GameServiceImpl.java b/ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/game/service/impl/GameServiceImpl.java rename to ff-game/src/main/java/com/ff/game/service/impl/GameServiceImpl.java diff --git a/ff-game/src/main/java/com/ff/member/controller/MemberController.java b/ff-game/src/main/java/com/ff/member/controller/MemberController.java new file mode 100644 index 0000000..65cfceb --- /dev/null +++ b/ff-game/src/main/java/com/ff/member/controller/MemberController.java @@ -0,0 +1,50 @@ +package com.ff.member.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.member.domain.Member; +import com.ff.member.service.IMemberService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 会员Controller + * + * @author shi + * @date 2025-02-10 + */ +@RestController +@RequestMapping("/tenant/member") +public class MemberController extends BaseController +{ + @Autowired + private IMemberService memberService; + + /** + * 查询会员列表 + */ + @PreAuthorize("@ss.hasPermi('member:member:list')") + @GetMapping("/list") + public TableDataInfo list(Member member) + { + startPage(); + List list = memberService.selectMemberList(member); + return getDataTable(list); + } + + +} diff --git a/ff-admin/src/main/java/com/ff/member/domain/Member.java b/ff-game/src/main/java/com/ff/member/domain/Member.java similarity index 83% rename from ff-admin/src/main/java/com/ff/member/domain/Member.java rename to ff-game/src/main/java/com/ff/member/domain/Member.java index 3f271a2..8eaee0d 100644 --- a/ff-admin/src/main/java/com/ff/member/domain/Member.java +++ b/ff-game/src/main/java/com/ff/member/domain/Member.java @@ -1,5 +1,7 @@ package com.ff.member.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -22,6 +24,7 @@ public class Member extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 租户key */ diff --git a/ff-admin/src/main/java/com/ff/member/mapper/MemberMapper.java b/ff-game/src/main/java/com/ff/member/mapper/MemberMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/member/mapper/MemberMapper.java rename to ff-game/src/main/java/com/ff/member/mapper/MemberMapper.java diff --git a/ff-admin/src/main/java/com/ff/member/service/IMemberService.java b/ff-game/src/main/java/com/ff/member/service/IMemberService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/member/service/IMemberService.java rename to ff-game/src/main/java/com/ff/member/service/IMemberService.java diff --git a/ff-admin/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java b/ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java rename to ff-game/src/main/java/com/ff/member/service/impl/MemberServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/monitor/SysLogininforController.java b/ff-game/src/main/java/com/ff/monitor/SysLogininforController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/monitor/SysLogininforController.java rename to ff-game/src/main/java/com/ff/monitor/SysLogininforController.java diff --git a/ff-admin/src/main/java/com/ff/monitor/SysOperlogController.java b/ff-game/src/main/java/com/ff/monitor/SysOperlogController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/monitor/SysOperlogController.java rename to ff-game/src/main/java/com/ff/monitor/SysOperlogController.java diff --git a/ff-admin/src/main/java/com/ff/quartz/config/ScheduleConfig.java b/ff-game/src/main/java/com/ff/quartz/config/ScheduleConfig.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/config/ScheduleConfig.java rename to ff-game/src/main/java/com/ff/quartz/config/ScheduleConfig.java diff --git a/ff-admin/src/main/java/com/ff/quartz/controller/SysJobController.java b/ff-game/src/main/java/com/ff/quartz/controller/SysJobController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/controller/SysJobController.java rename to ff-game/src/main/java/com/ff/quartz/controller/SysJobController.java diff --git a/ff-admin/src/main/java/com/ff/quartz/controller/SysJobLogController.java b/ff-game/src/main/java/com/ff/quartz/controller/SysJobLogController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/controller/SysJobLogController.java rename to ff-game/src/main/java/com/ff/quartz/controller/SysJobLogController.java diff --git a/ff-admin/src/main/java/com/ff/quartz/domain/SysJob.java b/ff-game/src/main/java/com/ff/quartz/domain/SysJob.java similarity index 95% rename from ff-admin/src/main/java/com/ff/quartz/domain/SysJob.java rename to ff-game/src/main/java/com/ff/quartz/domain/SysJob.java index 7e8451b..5c8498c 100644 --- a/ff-admin/src/main/java/com/ff/quartz/domain/SysJob.java +++ b/ff-game/src/main/java/com/ff/quartz/domain/SysJob.java @@ -1,6 +1,8 @@ package com.ff.quartz.domain; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.annotation.Excel.ColumnType; import com.ff.base.constant.ScheduleConstants; @@ -25,6 +27,7 @@ public class SysJob extends BaseEntity /** 任务ID */ @Excel(name = "任务序号", cellType = ColumnType.NUMERIC) + @JsonSerialize(using = ToStringSerializer.class) private Long jobId; /** 任务名称 */ @@ -54,7 +57,7 @@ public class SysJob extends BaseEntity /** 任务状态(0正常 1暂停) */ @Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停") private String status; - + @JsonSerialize(using = ToStringSerializer.class) public Long getJobId() { return jobId; diff --git a/ff-admin/src/main/java/com/ff/quartz/domain/SysJobLog.java b/ff-game/src/main/java/com/ff/quartz/domain/SysJobLog.java similarity index 93% rename from ff-admin/src/main/java/com/ff/quartz/domain/SysJobLog.java rename to ff-game/src/main/java/com/ff/quartz/domain/SysJobLog.java index cd08116..862e809 100644 --- a/ff-admin/src/main/java/com/ff/quartz/domain/SysJobLog.java +++ b/ff-game/src/main/java/com/ff/quartz/domain/SysJobLog.java @@ -1,5 +1,7 @@ package com.ff.quartz.domain; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.annotation.Excel; import com.ff.base.core.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -18,6 +20,7 @@ public class SysJobLog extends BaseEntity /** ID */ @Excel(name = "日志序号") + @JsonSerialize(using = ToStringSerializer.class) private Long jobLogId; /** 任务名称 */ @@ -49,7 +52,7 @@ public class SysJobLog extends BaseEntity /** 停止时间 */ private Date stopTime; - + @JsonSerialize(using = ToStringSerializer.class) public Long getJobLogId() { return jobLogId; diff --git a/ff-admin/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java b/ff-game/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java rename to ff-game/src/main/java/com/ff/quartz/mapper/SysJobLogMapper.java diff --git a/ff-admin/src/main/java/com/ff/quartz/mapper/SysJobMapper.java b/ff-game/src/main/java/com/ff/quartz/mapper/SysJobMapper.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/mapper/SysJobMapper.java rename to ff-game/src/main/java/com/ff/quartz/mapper/SysJobMapper.java diff --git a/ff-admin/src/main/java/com/ff/quartz/service/ISysJobLogService.java b/ff-game/src/main/java/com/ff/quartz/service/ISysJobLogService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/service/ISysJobLogService.java rename to ff-game/src/main/java/com/ff/quartz/service/ISysJobLogService.java diff --git a/ff-admin/src/main/java/com/ff/quartz/service/ISysJobService.java b/ff-game/src/main/java/com/ff/quartz/service/ISysJobService.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/service/ISysJobService.java rename to ff-game/src/main/java/com/ff/quartz/service/ISysJobService.java diff --git a/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java b/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java rename to ff-game/src/main/java/com/ff/quartz/service/impl/SysJobLogServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java b/ff-game/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java rename to ff-game/src/main/java/com/ff/quartz/service/impl/SysJobServiceImpl.java diff --git a/ff-admin/src/main/java/com/ff/quartz/task/GameTask.java b/ff-game/src/main/java/com/ff/quartz/task/GameTask.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/task/GameTask.java rename to ff-game/src/main/java/com/ff/quartz/task/GameTask.java diff --git a/ff-admin/src/main/java/com/ff/quartz/task/RyTask.java b/ff-game/src/main/java/com/ff/quartz/task/RyTask.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/task/RyTask.java rename to ff-game/src/main/java/com/ff/quartz/task/RyTask.java diff --git a/ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java b/ff-game/src/main/java/com/ff/quartz/task/TenantQuotaTask.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java rename to ff-game/src/main/java/com/ff/quartz/task/TenantQuotaTask.java diff --git a/ff-admin/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java b/ff-game/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java rename to ff-game/src/main/java/com/ff/quartz/util/AbstractQuartzJob.java diff --git a/ff-admin/src/main/java/com/ff/quartz/util/CronUtils.java b/ff-game/src/main/java/com/ff/quartz/util/CronUtils.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/util/CronUtils.java rename to ff-game/src/main/java/com/ff/quartz/util/CronUtils.java diff --git a/ff-admin/src/main/java/com/ff/quartz/util/JobInvokeUtil.java b/ff-game/src/main/java/com/ff/quartz/util/JobInvokeUtil.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/util/JobInvokeUtil.java rename to ff-game/src/main/java/com/ff/quartz/util/JobInvokeUtil.java diff --git a/ff-admin/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java b/ff-game/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java rename to ff-game/src/main/java/com/ff/quartz/util/QuartzDisallowConcurrentExecution.java diff --git a/ff-admin/src/main/java/com/ff/quartz/util/QuartzJobExecution.java b/ff-game/src/main/java/com/ff/quartz/util/QuartzJobExecution.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/util/QuartzJobExecution.java rename to ff-game/src/main/java/com/ff/quartz/util/QuartzJobExecution.java diff --git a/ff-admin/src/main/java/com/ff/quartz/util/ScheduleUtils.java b/ff-game/src/main/java/com/ff/quartz/util/ScheduleUtils.java similarity index 100% rename from ff-admin/src/main/java/com/ff/quartz/util/ScheduleUtils.java rename to ff-game/src/main/java/com/ff/quartz/util/ScheduleUtils.java diff --git a/ff-admin/src/main/java/com/ff/system/SysConfigController.java b/ff-game/src/main/java/com/ff/system/SysConfigController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysConfigController.java rename to ff-game/src/main/java/com/ff/system/SysConfigController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysDatasourceController.java b/ff-game/src/main/java/com/ff/system/SysDatasourceController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysDatasourceController.java rename to ff-game/src/main/java/com/ff/system/SysDatasourceController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysDeptController.java b/ff-game/src/main/java/com/ff/system/SysDeptController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysDeptController.java rename to ff-game/src/main/java/com/ff/system/SysDeptController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysDictDataController.java b/ff-game/src/main/java/com/ff/system/SysDictDataController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysDictDataController.java rename to ff-game/src/main/java/com/ff/system/SysDictDataController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysDictTypeController.java b/ff-game/src/main/java/com/ff/system/SysDictTypeController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysDictTypeController.java rename to ff-game/src/main/java/com/ff/system/SysDictTypeController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysIndexController.java b/ff-game/src/main/java/com/ff/system/SysIndexController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysIndexController.java rename to ff-game/src/main/java/com/ff/system/SysIndexController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysLoginController.java b/ff-game/src/main/java/com/ff/system/SysLoginController.java similarity index 92% rename from ff-admin/src/main/java/com/ff/system/SysLoginController.java rename to ff-game/src/main/java/com/ff/system/SysLoginController.java index 0786cb6..75d4044 100644 --- a/ff-admin/src/main/java/com/ff/system/SysLoginController.java +++ b/ff-game/src/main/java/com/ff/system/SysLoginController.java @@ -9,6 +9,7 @@ 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.system.service.ITenantAgentService; import com.ff.base.utils.SecurityUtils; import com.ff.base.web.service.SysLoginService; import com.ff.base.web.service.SysPermissionService; @@ -50,6 +51,10 @@ public class SysLoginController { @Resource private ITenantSecretKeyService tenantSecretKeyService; + @Resource + private ITenantAgentService tenantAgentService; + + /** * 登录方法 * @@ -67,6 +72,8 @@ public class SysLoginController { loginService.loginPreCheck(loginBody.getUsername(), loginBody.getPassword()); if (LoginType.TENANT.getValue().equals(loginBody.getLoginType())) { token = tenantSecretKeyService.login(loginBody.getUsername(), loginBody.getPassword()); + } else if (LoginType.AGENT.getValue().equals(loginBody.getLoginType())) { + token = tenantAgentService.login(loginBody.getUsername(), loginBody.getPassword()); } else { token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid()); diff --git a/ff-admin/src/main/java/com/ff/system/SysMenuController.java b/ff-game/src/main/java/com/ff/system/SysMenuController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysMenuController.java rename to ff-game/src/main/java/com/ff/system/SysMenuController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysPostController.java b/ff-game/src/main/java/com/ff/system/SysPostController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysPostController.java rename to ff-game/src/main/java/com/ff/system/SysPostController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysProfileController.java b/ff-game/src/main/java/com/ff/system/SysProfileController.java similarity index 92% rename from ff-admin/src/main/java/com/ff/system/SysProfileController.java rename to ff-game/src/main/java/com/ff/system/SysProfileController.java index 13d87a3..f5cd517 100644 --- a/ff-admin/src/main/java/com/ff/system/SysProfileController.java +++ b/ff-game/src/main/java/com/ff/system/SysProfileController.java @@ -8,7 +8,9 @@ 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.TenantAgent; import com.ff.base.system.domain.TenantSecretKey; +import com.ff.base.system.service.ITenantAgentService; import com.ff.base.system.service.ITenantSecretKeyService; import com.ff.base.utils.SecurityUtils; import com.ff.base.utils.StringUtils; @@ -39,6 +41,10 @@ public class SysProfileController extends BaseController { @Resource private ITenantSecretKeyService tenantSecretKeyService; + + @Resource + private ITenantAgentService tenantAgentService; + /** * 个人信息 */ @@ -101,6 +107,10 @@ public class SysProfileController extends BaseController { TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyByTenantKey(userName); tenantSecretKey.setPassword(newPassword); result = tenantSecretKeyService.updateTenantSecretKey(tenantSecretKey) > 0; + } else if (LoginType.AGENT.getValue().equals(loginType)) { + TenantAgent tenantAgent = tenantAgentService.selectTenantAgentByAccount(userName); + tenantAgent.setPassword(newPassword); + result = tenantAgentService.updateTenantAgent(tenantAgent) > 0; } else if (LoginType.ADMIN.getValue().equals(loginType)) { result = userService.resetUserPwd(userName, newPassword) > 0; } diff --git a/ff-admin/src/main/java/com/ff/system/SysRegisterController.java b/ff-game/src/main/java/com/ff/system/SysRegisterController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysRegisterController.java rename to ff-game/src/main/java/com/ff/system/SysRegisterController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysRoleController.java b/ff-game/src/main/java/com/ff/system/SysRoleController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysRoleController.java rename to ff-game/src/main/java/com/ff/system/SysRoleController.java diff --git a/ff-admin/src/main/java/com/ff/system/SysUserController.java b/ff-game/src/main/java/com/ff/system/SysUserController.java similarity index 100% rename from ff-admin/src/main/java/com/ff/system/SysUserController.java rename to ff-game/src/main/java/com/ff/system/SysUserController.java diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java new file mode 100644 index 0000000..068db7a --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java @@ -0,0 +1,56 @@ +package com.ff.tenant.controller; + +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.core.page.TableDataInfo; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.domain.TenantSecretKey; +import com.ff.base.system.service.ITenantPlatformService; +import com.ff.base.system.service.ITenantSecretKeyService; +import com.ff.common.domain.TenantGameQuota; +import com.ff.common.service.ITenantGameQuotaService; +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.service.IGameBettingDetailsService; +import com.ff.tenant.dto.TenantDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 租户控制器 + * + * @author shi + * @date 2025/02/27 + */ +@RestController +@RequestMapping("/tenant/betting/details") +public class TenantBettingDetailsController extends BaseController { + + + @Resource + private IGameBettingDetailsService gameBettingDetailsService; + + + /** + * 列表 + * + * @param gameBettingDetails 租户平台 + * @return {@link TableDataInfo } + */ + @PreAuthorize("@ss.hasPermi('tenant:betting:list')") + @GetMapping("/list") + public TableDataInfo list(GameBettingDetails gameBettingDetails) + { + gameBettingDetails.setTenantKey("kk1game_kk1game"); + startPage(); + List gameBettingDetailsList = gameBettingDetailsService.selectGameBettingDetailsList(gameBettingDetails); + return getDataTable(gameBettingDetailsList); + } + +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java new file mode 100644 index 0000000..b8ce94f --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java @@ -0,0 +1,61 @@ +package com.ff.tenant.controller; + +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.domain.AjaxResult; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.domain.TenantSecretKey; +import com.ff.base.system.service.ITenantAgentService; +import com.ff.base.system.service.ITenantPlatformService; +import com.ff.base.system.service.ITenantSecretKeyService; +import com.ff.common.domain.TenantGameQuota; +import com.ff.common.service.ITenantGameQuotaService; +import com.ff.tenant.dto.TenantDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + + +/** + * 租户控制器 + * + * @author shi + * @date 2025/02/27 + */ +@RestController +@RequestMapping("/tenant") +public class TenantController extends BaseController { + @Autowired + private ITenantSecretKeyService tenantSecretKeyService; + + @Resource + private ITenantGameQuotaService tenantGameQuotaService; + + @Resource + private ITenantPlatformService tenantPlatformService; + + + /** + * 获取信息 + * + * @return {@link AjaxResult } + */ + @PreAuthorize("@ss.hasPermi('tenant:info:query')") + @GetMapping + public AjaxResult getInfo() { + TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyById(getUserId()); + TenantDTO tenantDTO = TenantDTO.builder() + .tenantSecretKey(tenantSecretKey) + .tenantGameQuotaList(tenantGameQuotaService.selectTenantGameQuotaList(TenantGameQuota.builder() + .tenantKey(tenantSecretKey.getTenantKey()) + .build())) + .tenantPlatforms(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder() + .tenantId(tenantSecretKey.getId()) + .build())) + .build(); + return success(tenantDTO); + } + + +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java new file mode 100644 index 0000000..e95d0a4 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java @@ -0,0 +1,50 @@ +package com.ff.tenant.controller; + +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.page.TableDataInfo; +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.domain.GameExchangeMoney; +import com.ff.game.dto.GameExchangeMoneyDTO; +import com.ff.game.service.IGameBettingDetailsService; +import com.ff.game.service.IGameExchangeMoneyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 用户额度游戏流水控制器 + * + * @author shi + * @date 2025/02/27 + */ +@RestController +@RequestMapping("/tenant/exchange") +public class TenantExchangeController extends BaseController { + + + @Resource + private IGameExchangeMoneyService gameExchangeMoneyService; + + + /** + * 列表 + * + * @param gameExchangeMoneyDTO 游戏兑换货币 + * @return {@link TableDataInfo } + */ + @PreAuthorize("@ss.hasPermi('tenant:exchange:list')") + @GetMapping("/list") + public TableDataInfo list(GameExchangeMoneyDTO gameExchangeMoneyDTO) { + gameExchangeMoneyDTO.setTenantKey("kk1game_kk1game"); + startPage(); + List gameExchangeMoneyDTOS = gameExchangeMoneyService.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); + return getDataTable(gameExchangeMoneyDTOS); + } + +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java new file mode 100644 index 0000000..aa3c920 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java @@ -0,0 +1,48 @@ +package com.ff.tenant.controller; + +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.page.TableDataInfo; +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.service.IGameBettingDetailsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 租户控制器 + * + * @author shi + * @date 2025/02/27 + */ +@RestController +@RequestMapping("/tenant/quota") +public class TenantQuotaController extends BaseController { + + + @Resource + private IGameBettingDetailsService gameBettingDetailsService; + + + /** + * 列表 + * + * @param gameBettingDetails 租户平台 + * @return {@link TableDataInfo } + */ + @PreAuthorize("@ss.hasPermi('tenant:betting:list')") + @GetMapping("/list") + public TableDataInfo list(GameBettingDetails gameBettingDetails) + { + gameBettingDetails.setTenantKey("kk1game_kk1game"); + startPage(); + List gameBettingDetailsList = gameBettingDetailsService.selectGameBettingDetailsList(gameBettingDetails); + return getDataTable(gameBettingDetailsList); + } + +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java new file mode 100644 index 0000000..72ef54c --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java @@ -0,0 +1,51 @@ +package com.ff.tenant.controller; + +import com.ff.base.core.controller.BaseController; +import com.ff.base.core.page.TableDataInfo; +import com.ff.common.domain.TenantGameQuotaFlow; +import com.ff.common.service.ITenantGameQuotaFlowService; +import com.ff.game.domain.GameBettingDetails; +import com.ff.game.service.IGameBettingDetailsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 租户额度流水控制器 + * + * @author shi + * @date 2025/02/27 + */ +@RestController +@RequestMapping("/tenant/quota/flow") +public class TenantQuotaFlowController extends BaseController { + + + + @Resource + private ITenantGameQuotaFlowService tenantGameQuotaFlowService; + + + /** + * 列表 + * + * @param tenantGameQuotaFlow 租户平台 + * @return {@link TableDataInfo } + */ + @PreAuthorize("@ss.hasPermi('tenant:quota:flow:list')") + @GetMapping("/list") + public TableDataInfo list(TenantGameQuotaFlow tenantGameQuotaFlow) + { + tenantGameQuotaFlow.setTenantKey("kk1game_kk1game"); + startPage(); + List tenantGameQuotaFlows = tenantGameQuotaFlowService.selectTenantGameQuotaFlowList(tenantGameQuotaFlow); + return getDataTable(tenantGameQuotaFlows); + } + +} diff --git a/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java b/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java new file mode 100644 index 0000000..2618e82 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java @@ -0,0 +1,40 @@ +package com.ff.tenant.dto; + +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.domain.TenantSecretKey; +import com.ff.common.domain.TenantGameQuota; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 租户dto + * + * @author shi + * @date 2025/02/27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantDTO implements java.io.Serializable{ + private static final long serialVersionUID = 4132444654065053186L; + + /** + * 租户密钥 + */ + private TenantSecretKey tenantSecretKey; + + /** + * 租户游戏配额列表 + */ + private List tenantGameQuotaList; + + /** + * 租户平台 + */ + private List tenantPlatforms; +} diff --git a/ff-admin/src/main/java/com/ff/validation/ListSizeCheck.java b/ff-game/src/main/java/com/ff/validation/ListSizeCheck.java similarity index 100% rename from ff-admin/src/main/java/com/ff/validation/ListSizeCheck.java rename to ff-game/src/main/java/com/ff/validation/ListSizeCheck.java diff --git a/ff-admin/src/main/java/com/ff/validation/ListSizeValidator.java b/ff-game/src/main/java/com/ff/validation/ListSizeValidator.java similarity index 100% rename from ff-admin/src/main/java/com/ff/validation/ListSizeValidator.java rename to ff-game/src/main/java/com/ff/validation/ListSizeValidator.java diff --git a/ff-admin/src/main/resources/META-INF/spring-devtools.properties b/ff-game/src/main/resources/META-INF/spring-devtools.properties similarity index 100% rename from ff-admin/src/main/resources/META-INF/spring-devtools.properties rename to ff-game/src/main/resources/META-INF/spring-devtools.properties diff --git a/ff-admin/src/main/resources/application-druid.yml b/ff-game/src/main/resources/application-druid.yml similarity index 100% rename from ff-admin/src/main/resources/application-druid.yml rename to ff-game/src/main/resources/application-druid.yml diff --git a/ff-admin/src/main/resources/application-prod.yml b/ff-game/src/main/resources/application-prod.yml similarity index 100% rename from ff-admin/src/main/resources/application-prod.yml rename to ff-game/src/main/resources/application-prod.yml diff --git a/ff-admin/src/main/resources/application.yml b/ff-game/src/main/resources/application.yml similarity index 100% rename from ff-admin/src/main/resources/application.yml rename to ff-game/src/main/resources/application.yml diff --git a/ff-admin/src/main/resources/i18n/messages.properties b/ff-game/src/main/resources/i18n/messages.properties similarity index 100% rename from ff-admin/src/main/resources/i18n/messages.properties rename to ff-game/src/main/resources/i18n/messages.properties diff --git a/ff-admin/src/main/resources/logback.xml b/ff-game/src/main/resources/logback.xml similarity index 100% rename from ff-admin/src/main/resources/logback.xml rename to ff-game/src/main/resources/logback.xml diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml new file mode 100644 index 0000000..9bc0dbc --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select id,agent_withdrawal_id,agent_id, source_id, source_type, commission_type, currency_code, platform_code, cost_balance, merchant_balance, balance, commission_balance, usdt_balance, approval_status, create_by, create_time, update_by, update_time from ff_tenant_agent_commission + + + + + + + + insert into ff_tenant_agent_commission + + id, + agent_id, + source_id, + source_type, + commission_type, + currency_code, + platform—_code, + cost_balance, + merchant_balance, + balance, + commission_balance, + usdt_balance, + approval_status, + create_by, + create_time, + update_by, + update_time, + agent_withdrawal_id, + + + #{id}, + #{agentId}, + #{sourceId}, + #{sourceType}, + #{commissionType}, + #{currencyCode}, + #{platformCode}, + #{costBalance}, + #{merchantBalance}, + #{balance}, + #{commissionBalance}, + #{usdtBalance}, + #{approvalStatus}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{agentWithdrawalId}, + + + + + update ff_tenant_agent_commission + + agent_id = #{agentId}, + source_id = #{sourceId}, + source_type = #{sourceType}, + commission_type = #{commissionType}, + currency_code = #{currencyCode}, + platform—_code = #{platformCode}, + cost_balance = #{costBalance}, + merchant_balance = #{merchantBalance}, + balance = #{balance}, + commission_balance = #{commissionBalance}, + usdt_balance = #{usdtBalance}, + approval_status = #{approvalStatus}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + agent_withdrawal_id = #{agentWithdrawalId}, + + where id = #{id} + + + + delete from ff_tenant_agent_commission where id = #{id} + + + + delete from ff_tenant_agent_commission where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentInviteMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteMapper.xml new file mode 100644 index 0000000..24931e0 --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteMapper.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, agent_id, balance, invite_type, quota_type, score_ratio, tenant_type, deposit_ratio, real_balance, invite_code, invite_url, create_by, create_time, update_by, update_time from ff_tenant_agent_invite + + + + + + + + + + + + insert into ff_tenant_agent_invite + + id, + agent_id, + balance, + invite_type, + quota_type, + score_ratio, + tenant_type, + deposit_ratio, + real_balance, + invite_code, + invite_url, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{agentId}, + #{balance}, + #{inviteType}, + #{quotaType}, + #{scoreRatio}, + #{tenantType}, + #{depositRatio}, + #{realBalance}, + #{inviteCode}, + #{inviteUrl}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_agent_invite + + agent_id = #{agentId}, + balance = #{balance}, + invite_type = #{inviteType}, + quota_type = #{quotaType}, + score_ratio = #{scoreRatio}, + tenant_type = #{tenantType}, + deposit_ratio = #{depositRatio}, + real_balance = #{realBalance}, + invite_code = #{inviteCode}, + invite_url = #{inviteUrl}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_agent_invite where id = #{id} + + + + delete from ff_tenant_agent_invite where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentInvitePlatformMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentInvitePlatformMapper.xml new file mode 100644 index 0000000..d6ec47a --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentInvitePlatformMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + select id, invite_id, platform_code, currency_code, cost, use_cost, create_by, create_time, update_by, update_time from ff_tenant_agent_invite_platform + + + + + + + + insert into ff_tenant_agent_invite_platform + + id, + invite_id, + platform_code, + currency_code, + cost, + use_cost, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{inviteId}, + #{platformCode}, + #{currencyCode}, + #{cost}, + #{useCost}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_agent_invite_platform + + invite_id = #{inviteId}, + platform_code = #{platformCode}, + currency_code = #{currencyCode}, + cost = #{cost}, + use_cost = #{useCost}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_agent_invite_platform where id = #{id} + + + + delete from ff_tenant_agent_invite_platform where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml new file mode 100644 index 0000000..c1b2cd7 --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentInviteRegisterMapper.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id,order_id, agent_id, invite_code, account, password, balance, register_time, register_ip, register_ip_city, status, create_by, create_time, update_by, update_time from ff_tenant_agent_invite_register + + + + + + + + + + insert into ff_tenant_agent_invite_register + + id, + agent_id, + invite_code, + account, + password, + balance, + register_time, + register_ip, + register_ip_city, + status, + create_by, + create_time, + update_by, + update_time, + order_id, + + + #{id}, + #{agentId}, + #{inviteCode}, + #{account}, + #{password}, + #{balance}, + #{registerTime}, + #{registerIp}, + #{registerIpCity}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{orderId}, + + + + + update ff_tenant_agent_invite_register + + agent_id = #{agentId}, + invite_code = #{inviteCode}, + account = #{account}, + password = #{password}, + balance = #{balance}, + register_time = #{registerTime}, + register_ip = #{registerIp}, + register_ip_city = #{registerIpCity}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + order_id = #{orderId}, + + where id = #{id} + + + + delete from ff_tenant_agent_invite_register where id = #{id} + + + + delete from ff_tenant_agent_invite_register where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentWithdrawalMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentWithdrawalMapper.xml new file mode 100644 index 0000000..247c713 --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentWithdrawalMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + select id, agent_id, commission_balance, currency_agreement, wallet_address, approval_status, create_by, create_time, update_by, update_time from ff_tenant_agent_withdrawal + + + + + + + + insert into ff_tenant_agent_withdrawal + + id, + agent_id, + commission_balance, + currency_agreement, + wallet_address, + approval_status, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{agentId}, + #{commissionBalance}, + #{currencyAgreement}, + #{walletAddress}, + #{approvalStatus}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_agent_withdrawal + + agent_id = #{agentId}, + commission_balance = #{commissionBalance}, + currency_agreement = #{currencyAgreement}, + wallet_address = #{walletAddress}, + approval_status = #{approvalStatus}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_agent_withdrawal where id = #{id} + + + + delete from ff_tenant_agent_withdrawal where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-admin/src/main/resources/mapper/common/CurrencyMapper.xml b/ff-game/src/main/resources/mapper/common/CurrencyMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/common/CurrencyMapper.xml rename to ff-game/src/main/resources/mapper/common/CurrencyMapper.xml diff --git a/ff-admin/src/main/resources/mapper/common/LangMapper.xml b/ff-game/src/main/resources/mapper/common/LangMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/common/LangMapper.xml rename to ff-game/src/main/resources/mapper/common/LangMapper.xml diff --git a/ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml b/ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml new file mode 100644 index 0000000..4e34c04 --- /dev/null +++ b/ff-game/src/main/resources/mapper/common/TenantAgentPlatformMapper.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + select id, platform_code, currency_code, cost, use_cost, create_by, create_time, update_by, update_time from ff_tenant_agent_platform + + + + + + + + insert into ff_tenant_agent_platform + + id, + platform_code, + currency_code, + cost, + use_cost, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{platformCode}, + #{currencyCode}, + #{cost}, + #{useCost}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_agent_platform + + platform_code = #{platformCode}, + currency_code = #{currencyCode}, + cost = #{cost}, + use_cost = #{useCost}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_agent_platform where id = #{id} + + + + delete from ff_tenant_agent_platform where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml b/ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml new file mode 100644 index 0000000..226ac8e --- /dev/null +++ b/ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + source_id, + tenant_key, + quota_type, + member_id, + platform_code, + currency_code, + is_out, + operation_type, + balance_before, + balance, + exchange_ratio, + exchange_money, + balance_after, + remark, + create_by, + create_time, + update_by, + update_time + from ff_tenant_game_quota_flow + + + + + + + + insert into ff_tenant_game_quota_flow + + + id, + + + tenant_key, + + + quota_type, + + + member_id, + + + platform_code, + + + currency_code, + + + is_out, + + + operation_type, + + + balance_before, + + + balance, + + + exchange_ratio, + + + exchange_money, + + + balance_after, + + + remark, + + + create_by, + + + create_time, + + + update_by, + + + update_time, + + + source_id, + + + + + #{id}, + + + #{tenantKey}, + + + #{quotaType}, + + + #{memberId}, + + + #{platformCode}, + + + #{currencyCode}, + + + #{isOut}, + + + #{operationType}, + + + #{balanceBefore}, + + + #{balance}, + + + #{exchangeRatio}, + + + #{exchangeMoney}, + + + #{balanceAfter}, + + + #{remark}, + + + #{createBy}, + + + #{createTime}, + + + #{updateBy}, + + + #{updateTime}, + + + #{sourceId}, + + + + + + update ff_tenant_game_quota_flow + + + tenant_key = #{tenantKey}, + + + quota_type = #{quotaType}, + + + member_id = #{memberId}, + + + platform_code = #{platformCode}, + + + currency_code = #{currencyCode}, + + + is_out = #{isOut}, + + + operation_type = #{operationType}, + + + balance_before = #{balanceBefore}, + + + balance = #{balance}, + + + exchange_ratio = #{exchangeRatio}, + + + exchange_money = #{exchangeMoney}, + + + balance_after = #{balanceAfter}, + + + remark = #{remark}, + + + create_by = #{createBy}, + + + create_time = #{createTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + + + source_id = #{sourceId}, + + + where id = #{id} + + + + delete + from ff_tenant_game_quota_flow + where id = #{id} + + + + delete from ff_tenant_game_quota_flow where id in + + #{id} + + + + + + + + \ No newline at end of file diff --git a/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml b/ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml rename to ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml diff --git a/ff-admin/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml b/ff-game/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml rename to ff-game/src/main/resources/mapper/common/TenantQuotaExchangeMapper.xml diff --git a/ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml b/ff-game/src/main/resources/mapper/game/GameBettingDetailsMapper.xml similarity index 99% rename from ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml rename to ff-game/src/main/resources/mapper/game/GameBettingDetailsMapper.xml index fd56525..c6c2dc7 100644 --- a/ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml +++ b/ff-game/src/main/resources/mapper/game/GameBettingDetailsMapper.xml @@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and game_status = #{gameStatus} and game_status_type = #{gameStatusType} and game_currency_code = #{gameCurrencyCode} - and account = #{account} + and account like concat('%', #{account}, '%') and wagers_id = #{wagersId} and wagers_time = #{wagersTime} and bet_amount = #{betAmount} diff --git a/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml b/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml new file mode 100644 index 0000000..2783b81 --- /dev/null +++ b/ff-game/src/main/resources/mapper/game/GameExchangeMoneyMapper.xml @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + tenant_key, + order_id, + currency_code, + transaction_id, + member_id, + platform_code, + balance, + quota, + coin_before, + coin_after, + currency_before, + currency_after, + exchange_type, + status, + create_by, + create_time, + update_by, + update_time + from ff_game_exchange_money + + + + + + + + + + + insert into ff_game_exchange_money + + + id, + + + tenant_key, + + + currency_code, + + + order_id, + + + transaction_id, + + + member_id, + + + platform_code, + + + balance, + + + quota, + + + coin_before, + + + coin_after, + + + currency_before, + + + currency_after, + + + exchange_type, + + + status, + + + create_by, + + + create_time, + + + update_by, + + + update_time, + + + + + #{id}, + + + #{tenantKey}, + + + #{currencyCode}, + + + #{orderId}, + + + #{transactionId}, + + + #{memberId}, + + + #{platformCode}, + + + #{balance}, + + + #{quota}, + + + #{coinBefore}, + + + #{coinAfter}, + + + #{currencyBefore}, + + + #{currencyAfter}, + + + #{exchangeType}, + + + #{status}, + + + #{createBy}, + + + #{createTime}, + + + #{updateBy}, + + + #{updateTime}, + + + + + + update ff_game_exchange_money + + + tenant_key = #{tenantKey}, + + + currency_code = #{currencyCode}, + + + order_id = #{orderId}, + + + transaction_id = #{transactionId}, + + + member_id = #{memberId}, + + + platform_code = #{platformCode}, + + + balance = #{balance}, + + + quota = #{quota}, + + + coin_before = #{coinBefore}, + + + coin_after = #{coinAfter}, + + + currency_before = #{currencyBefore}, + + + currency_after = #{currencyAfter}, + + + exchange_type = #{exchangeType}, + + + status = #{status}, + + + create_by = #{createBy}, + + + create_time = #{createTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + + + where id = #{id} + + + + delete + from ff_game_exchange_money + where id = #{id} + + + + delete from ff_game_exchange_money where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-admin/src/main/resources/mapper/game/GameFreeRecordMapper.xml b/ff-game/src/main/resources/mapper/game/GameFreeRecordMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/game/GameFreeRecordMapper.xml rename to ff-game/src/main/resources/mapper/game/GameFreeRecordMapper.xml diff --git a/ff-admin/src/main/resources/mapper/game/GameMapper.xml b/ff-game/src/main/resources/mapper/game/GameMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/game/GameMapper.xml rename to ff-game/src/main/resources/mapper/game/GameMapper.xml diff --git a/ff-admin/src/main/resources/mapper/game/GamePlatformMapper.xml b/ff-game/src/main/resources/mapper/game/GamePlatformMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/game/GamePlatformMapper.xml rename to ff-game/src/main/resources/mapper/game/GamePlatformMapper.xml diff --git a/ff-admin/src/main/resources/mapper/game/GameSecretKeyMapper.xml b/ff-game/src/main/resources/mapper/game/GameSecretKeyMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/game/GameSecretKeyMapper.xml rename to ff-game/src/main/resources/mapper/game/GameSecretKeyMapper.xml diff --git a/ff-admin/src/main/resources/mapper/member/MemberMapper.xml b/ff-game/src/main/resources/mapper/member/MemberMapper.xml similarity index 98% rename from ff-admin/src/main/resources/mapper/member/MemberMapper.xml rename to ff-game/src/main/resources/mapper/member/MemberMapper.xml index a444537..8429ed6 100644 --- a/ff-admin/src/main/resources/mapper/member/MemberMapper.xml +++ b/ff-game/src/main/resources/mapper/member/MemberMapper.xml @@ -25,7 +25,7 @@ and tenant_key = #{tenantKey} - and member_account = #{memberAccount} + and member_account like concat('%',#{memberAccount},'%') and game_account = #{gameAccount} and platform_code = #{platformCode} and currency_code = #{currencyCode} diff --git a/ff-admin/src/main/resources/mapper/quartz/SysJobLogMapper.xml b/ff-game/src/main/resources/mapper/quartz/SysJobLogMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/quartz/SysJobLogMapper.xml rename to ff-game/src/main/resources/mapper/quartz/SysJobLogMapper.xml diff --git a/ff-admin/src/main/resources/mapper/quartz/SysJobMapper.xml b/ff-game/src/main/resources/mapper/quartz/SysJobMapper.xml similarity index 100% rename from ff-admin/src/main/resources/mapper/quartz/SysJobMapper.xml rename to ff-game/src/main/resources/mapper/quartz/SysJobMapper.xml diff --git a/ff-admin/src/main/resources/mybatis/mybatis-config.xml b/ff-game/src/main/resources/mybatis/mybatis-config.xml similarity index 100% rename from ff-admin/src/main/resources/mybatis/mybatis-config.xml rename to ff-game/src/main/resources/mybatis/mybatis-config.xml diff --git a/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java b/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java index 6fc9b1f..b96fa01 100644 --- a/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java +++ b/ff-gen/src/main/java/com/ff/gen/service/GenTableServiceImpl.java @@ -178,6 +178,7 @@ public class GenTableServiceImpl implements IGenTableService { String tableName = table.getTableName(); GenUtils.initTable(table, operName); + table.setTableId(IdUtil.getSnowflakeNextId()); int row = genTableMapper.insertGenTable(table); if (row > 0) { @@ -186,6 +187,7 @@ public class GenTableServiceImpl implements IGenTableService for (GenTableColumn column : genTableColumns) { GenUtils.initColumnField(column, table); + column.setColumnId(IdUtil.getSnowflakeNextId()); genTableColumnMapper.insertGenTableColumn(column); } } diff --git a/ff-gen/src/main/resources/generator.yml b/ff-gen/src/main/resources/generator.yml index e0e4dad..035c10b 100644 --- a/ff-gen/src/main/resources/generator.yml +++ b/ff-gen/src/main/resources/generator.yml @@ -3,7 +3,7 @@ gen: # 作者 author: shi # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool - packageName: com.ff.operation + packageName: com.ff.common # 自动去除表前缀,默认是false autoRemovePre: true # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) diff --git a/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml b/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml index ebafd96..18e7fed 100644 --- a/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml +++ b/ff-gen/src/main/resources/mapper/gen/GenTableMapper.xml @@ -141,6 +141,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into gen_table ( + table_id, table_name, table_comment, class_name, @@ -157,6 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_by, create_time )values( + #{tableId}, #{tableName}, #{tableComment}, #{className}, diff --git a/ff-gen/src/main/resources/vm/java/domain.java.vm b/ff-gen/src/main/resources/vm/java/domain.java.vm index c7d5b9f..5fa9a07 100644 --- a/ff-gen/src/main/resources/vm/java/domain.java.vm +++ b/ff-gen/src/main/resources/vm/java/domain.java.vm @@ -41,6 +41,9 @@ public class ${ClassName} extends ${Entity} #elseif($column.javaType == 'Date') @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") +#elseif($column.javaType == 'Long') + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") #else @Excel(name = "${comment}") #end diff --git a/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm b/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm index 6a686f0..79ca062 100644 --- a/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ff-gen/src/main/resources/vm/java/serviceImpl.java.vm @@ -18,6 +18,8 @@ import ${packageName}.domain.${subClassName}; import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.domain.${ClassName}; import ${packageName}.service.I${ClassName}Service; +import cn.hutool.core.util.IdUtil; + /** * ${functionName}Service业务层处理 @@ -67,6 +69,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service @Override public int insert${ClassName}(${ClassName} ${className}) { + ${className}.setId(IdUtil.getSnowflakeNextId()); #foreach ($column in $columns) #if($column.javaField == 'createTime') ${className}.setCreateTime(DateUtils.getNowDate()); diff --git a/pom.xml b/pom.xml index 72c2d9a..1df341d 100644 --- a/pom.xml +++ b/pom.xml @@ -191,7 +191,7 @@ com.ff - ff-admin + ff-game ${ff.version} @@ -205,7 +205,7 @@ - ff-admin + ff-game ff-gen ff-base From f4be0750f5c60b44761a83e401ee8f3f1ef62686 Mon Sep 17 00:00:00 2001 From: shi Date: Thu, 27 Feb 2025 17:48:29 +0800 Subject: [PATCH 03/12] =?UTF-8?q?feat(tenant):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E7=99=BD=E5=90=8D=E5=8D=95=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E9=9B=86=E6=88=90=E7=B3=BB=E7=BB=9F=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=E6=A8=A1=E5=9D=97-=20=E6=96=B0=E5=A2=9E=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=92=8C=E6=9C=8D=E5=8A=A1=E5=AE=9E=E7=8E=B0=20-=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=B3=BB=E7=BB=9F=E5=8F=8D=E9=A6=88=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=8C=E5=8C=85=E6=8B=AC=E5=8F=8D=E9=A6=88=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E3=80=81=E6=96=B0=E5=A2=9E=E5=8F=8D=E9=A6=88=E3=80=81=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=8F=8D=E9=A6=88=E7=AD=89=E5=8A=9F=E8=83=BD=20-=20?= =?UTF-8?q?=E5=9C=A8=20HeaderCheckAspect=20=E4=B8=AD=E9=9B=86=E6=88=90?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E7=99=BD=E5=90=8D=E5=8D=95=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20-=20=E4=BC=98=E5=8C=96=20SysUser=20?= =?UTF-8?q?=E4=B8=AD=E7=99=BB=E5=BD=95=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ff/base/config/ResourcesConfig.java | 9 +- .../main/java/com/ff/base/enums/Status.java | 18 +++ .../com/ff/base/system/domain/SysUser.java | 2 +- .../ff/base/system/domain/TenantWhite.java | 39 +++++++ .../base/system/mapper/TenantWhiteMapper.java | 61 ++++++++++ .../system/service/ITenantWhiteService.java | 61 ++++++++++ .../service/impl/TenantWhiteServiceImpl.java | 99 +++++++++++++++++ .../mapper/system/TenantWhiteMapper.xml | 79 +++++++++++++ .../com/ff/annotation/HeaderCheckAspect.java | 15 +++ .../sys/controller/SysFeedbackController.java | 98 +++++++++++++++++ .../java/com/ff/sys/domain/SysFeedback.java | 52 +++++++++ .../com/ff/sys/mapper/SysFeedbackMapper.java | 61 ++++++++++ .../ff/sys/service/ISysFeedbackService.java | 61 ++++++++++ .../service/impl/SysFeedbackServiceImpl.java | 99 +++++++++++++++++ .../controller/TenantWhiteController.java | 74 +++++++++++++ .../mapper/sys/SysFeedbackMapper.xml | 104 ++++++++++++++++++ 16 files changed, 925 insertions(+), 7 deletions(-) create mode 100644 ff-base/src/main/java/com/ff/base/enums/Status.java create mode 100644 ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java create mode 100644 ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java create mode 100644 ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java create mode 100644 ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java create mode 100644 ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml create mode 100644 ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java create mode 100644 ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java create mode 100644 ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java create mode 100644 ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java create mode 100644 ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java create mode 100644 ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java create mode 100644 ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml diff --git a/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java b/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java index b15d80d..f8cac30 100644 --- a/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java +++ b/ff-base/src/main/java/com/ff/base/config/ResourcesConfig.java @@ -1,8 +1,5 @@ package com.ff.base.config; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ff.base.constant.Constants; import com.ff.base.interceptor.DataSourceSwitchInterceptor; import com.ff.base.interceptor.RepeatSubmitInterceptor; @@ -10,8 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.CacheControl; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @@ -19,7 +14,6 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import java.util.List; import java.util.concurrent.TimeUnit; /** @@ -36,6 +30,9 @@ public class ResourcesConfig implements WebMvcConfigurer @Autowired private DataSourceSwitchInterceptor dataSourceSwitchInterceptor; + + + @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { diff --git a/ff-base/src/main/java/com/ff/base/enums/Status.java b/ff-base/src/main/java/com/ff/base/enums/Status.java new file mode 100644 index 0000000..3999313 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/enums/Status.java @@ -0,0 +1,18 @@ +package com.ff.base.enums; + +import lombok.Getter; + +@Getter +public enum Status { + PENDING(1, "待处理"), + PROCESSED(2, "已处理"); + + private final Integer value; + private final String description; + + Status(Integer value, String description) { + this.value = value; + this.description = description; + } + +} diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java b/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java index 5b1c0ec..2bde598 100644 --- a/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java +++ b/ff-base/src/main/java/com/ff/base/system/domain/SysUser.java @@ -143,7 +143,7 @@ public class SysUser extends BaseEntity { /** - * 登录类型 0 后台 1 代理 2 租户 + * 登录类型 0 后台 1 租户 2 代理 */ private Integer loginType; diff --git a/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java new file mode 100644 index 0000000..0a9f8fe --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantWhite.java @@ -0,0 +1,39 @@ +package com.ff.base.system.domain; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 租户白名单对象 ff_tenant_white + * + * @author shi + * @date 2025-02-27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantWhite extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 租户id */ + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd") + private Long tenantId; + + /** 白名单ip地址 */ + @Excel(name = "白名单ip地址") + private String whiteIp; + + +} diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java new file mode 100644 index 0000000..310db8a --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantWhiteMapper.java @@ -0,0 +1,61 @@ +package com.ff.base.system.mapper; + +import java.util.List; +import com.ff.base.system.domain.TenantWhite; + +/** + * 租户白名单Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface TenantWhiteMapper +{ + /** + * 查询租户白名单 + * + * @param id 租户白名单主键 + * @return 租户白名单 + */ + TenantWhite selectTenantWhiteById(Long id); + + /** + * 查询租户白名单列表 + * + * @param tenantWhite 租户白名单 + * @return 租户白名单集合 + */ + List selectTenantWhiteList(TenantWhite tenantWhite); + + /** + * 新增租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int insertTenantWhite(TenantWhite tenantWhite); + + /** + * 修改租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int updateTenantWhite(TenantWhite tenantWhite); + + /** + * 删除租户白名单 + * + * @param id 租户白名单主键 + * @return 结果 + */ + int deleteTenantWhiteById(Long id); + + /** + * 批量删除租户白名单 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTenantWhiteByIds(Long[] ids); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java new file mode 100644 index 0000000..75061a5 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantWhiteService.java @@ -0,0 +1,61 @@ +package com.ff.base.system.service; + +import java.util.List; +import com.ff.base.system.domain.TenantWhite; + +/** + * 租户白名单Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ITenantWhiteService +{ + /** + * 查询租户白名单 + * + * @param id 租户白名单主键 + * @return 租户白名单 + */ + TenantWhite selectTenantWhiteById(Long id); + + /** + * 查询租户白名单列表 + * + * @param tenantWhite 租户白名单 + * @return 租户白名单集合 + */ + List selectTenantWhiteList(TenantWhite tenantWhite); + + /** + * 新增租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int insertTenantWhite(TenantWhite tenantWhite); + + /** + * 修改租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + int updateTenantWhite(TenantWhite tenantWhite); + + /** + * 批量删除租户白名单 + * + * @param ids 需要删除的租户白名单主键集合 + * @return 结果 + */ + int deleteTenantWhiteByIds(Long[] ids); + + /** + * 删除租户白名单信息 + * + * @param id 租户白名单主键 + * @return 结果 + */ + int deleteTenantWhiteById(Long id); +} diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java new file mode 100644 index 0000000..46c1d6b --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantWhiteServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.base.system.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.base.system.mapper.TenantWhiteMapper; +import com.ff.base.system.domain.TenantWhite; +import com.ff.base.system.service.ITenantWhiteService; +import cn.hutool.core.util.IdUtil; + + +/** + * 租户白名单Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class TenantWhiteServiceImpl implements ITenantWhiteService +{ + @Autowired + private TenantWhiteMapper tenantWhiteMapper; + + /** + * 查询租户白名单 + * + * @param id 租户白名单主键 + * @return 租户白名单 + */ + @Override + public TenantWhite selectTenantWhiteById(Long id) + { + return tenantWhiteMapper.selectTenantWhiteById(id); + } + + /** + * 查询租户白名单列表 + * + * @param tenantWhite 租户白名单 + * @return 租户白名单 + */ + @Override + public List selectTenantWhiteList(TenantWhite tenantWhite) + { + return tenantWhiteMapper.selectTenantWhiteList(tenantWhite); + } + + /** + * 新增租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + @Override + public int insertTenantWhite(TenantWhite tenantWhite) + { + tenantWhite.setId(IdUtil.getSnowflakeNextId()); + tenantWhite.setCreateTime(DateUtils.getNowDate()); + return tenantWhiteMapper.insertTenantWhite(tenantWhite); + } + + /** + * 修改租户白名单 + * + * @param tenantWhite 租户白名单 + * @return 结果 + */ + @Override + public int updateTenantWhite(TenantWhite tenantWhite) + { + tenantWhite.setUpdateTime(DateUtils.getNowDate()); + return tenantWhiteMapper.updateTenantWhite(tenantWhite); + } + + /** + * 批量删除租户白名单 + * + * @param ids 需要删除的租户白名单主键 + * @return 结果 + */ + @Override + public int deleteTenantWhiteByIds(Long[] ids) + { + return tenantWhiteMapper.deleteTenantWhiteByIds(ids); + } + + /** + * 删除租户白名单信息 + * + * @param id 租户白名单主键 + * @return 结果 + */ + @Override + public int deleteTenantWhiteById(Long id) + { + return tenantWhiteMapper.deleteTenantWhiteById(id); + } +} diff --git a/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml b/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml new file mode 100644 index 0000000..2efcf14 --- /dev/null +++ b/ff-base/src/main/resources/mapper/system/TenantWhiteMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + select id, tenant_id, white_ip, create_by, create_time, update_by, update_time from ff_tenant_white + + + + + + + + insert into ff_tenant_white + + id, + tenant_id, + white_ip, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{tenantId}, + #{whiteIp}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_tenant_white + + tenant_id = #{tenantId}, + white_ip = #{whiteIp}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_tenant_white where id = #{id} + + + + delete from ff_tenant_white where id in + + #{id} + + + \ No newline at end of file diff --git a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java index b6f05d6..707eb99 100644 --- a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java +++ b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java @@ -1,6 +1,11 @@ package com.ff.annotation; +import cn.hutool.core.util.IdUtil; import com.ff.base.constant.Constants; +import com.ff.base.system.domain.TenantWhite; +import com.ff.base.system.service.ITenantWhiteService; +import com.ff.base.utils.ip.IpUtils; +import com.ff.base.utils.uuid.IdUtils; import com.ff.config.KeyConfig; import com.ff.base.utils.sign.Md5Utils; import com.ff.base.system.domain.TenantSecretKey; @@ -15,6 +20,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * 标题检查方面 @@ -29,6 +35,9 @@ public class HeaderCheckAspect { @Resource private ITenantSecretKeyService tenantSecretKeyService; + @Resource + private ITenantWhiteService tenantWhiteService; + @Resource private KeyConfig keyUtils; @@ -63,6 +72,12 @@ public class HeaderCheckAspect { Assert.isTrue(tenantSecretKey.getTenantStatus(), "当前租户已停用"); + List tenantWhites = tenantWhiteService.selectTenantWhiteList(TenantWhite.builder() + .tenantId(tenantSecretKey.getId()) + .whiteIp(IpUtils.getIpAddr()) + .build()); + Assert.isTrue(!tenantWhites.isEmpty(), "当前租户不在白名单内"); + String keyG = Md5Utils.md5New(random + key + tenantSecretKey.getTenantSecret()); Assert.isTrue(keyG.equals(sign), "签名错误"); //保存 diff --git a/ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java b/ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java new file mode 100644 index 0000000..04a8171 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/controller/SysFeedbackController.java @@ -0,0 +1,98 @@ +package com.ff.sys.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ff.base.enums.Status; +import com.ff.base.utils.SecurityUtils; +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.sys.domain.SysFeedback; +import com.ff.sys.service.ISysFeedbackService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 系统反馈Controller + * + * @author shi + * @date 2025-02-27 + */ +@RestController +@RequestMapping("/sys/feedback") +public class SysFeedbackController extends BaseController +{ + @Autowired + private ISysFeedbackService sysFeedbackService; + + /** + * 查询系统反馈列表 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:list')") + @GetMapping("/list") + public TableDataInfo list(SysFeedback sysFeedback) + { + startPage(); + List list = sysFeedbackService.selectSysFeedbackList(sysFeedback); + return getDataTable(list); + } + + + /** + * 获取系统反馈详细信息 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sysFeedbackService.selectSysFeedbackById(id)); + } + + /** + * 新增系统反馈 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:add')") + @Log(title = "系统反馈", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysFeedback sysFeedback) + { + sysFeedback.setUserId(getUserId()); + sysFeedback.setUserType(SecurityUtils.getLoginUser().getUser().getLoginType()); + return toAjax(sysFeedbackService.insertSysFeedback(sysFeedback)); + } + + /** + * 修改系统反馈 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:edit')") + @Log(title = "系统反馈", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysFeedback sysFeedback) + { + sysFeedback.setStatus(Status.PROCESSED.getValue()); + return toAjax(sysFeedbackService.updateSysFeedback(sysFeedback)); + } + + /** + * 删除系统反馈 + */ + @PreAuthorize("@ss.hasPermi('sys:feedback:remove')") + @Log(title = "系统反馈", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sysFeedbackService.deleteSysFeedbackByIds(ids)); + } +} diff --git a/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java b/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java new file mode 100644 index 0000000..118e849 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/domain/SysFeedback.java @@ -0,0 +1,52 @@ +package com.ff.sys.domain; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.Data; +/** + * 系统反馈对象 ff_sys_feedback + * + * @author shi + * @date 2025-02-27 + */ +@Data +public class SysFeedback extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 用户类型 1 租户 2代理 */ + @Excel(name = "用户类型 1 租户 2代理 ") + private Integer userType; + + /** 用户id */ + @JsonSerialize(using = ToStringSerializer.class) + @Excel(name = "用户id", width = 30, dateFormat = "yyyy-MM-dd") + private Long userId; + + /** 标题 */ + @Excel(name = "标题") + private String title; + + /** 手机号 */ + @Excel(name = "手机号") + private String phone; + + /** 反馈内容 */ + @Excel(name = "反馈内容") + private String content; + + /** 状态 1待处理 2已处理 */ + @Excel(name = "状态 1待处理 2已处理") + private Integer status; + + /** 回复内容 */ + @Excel(name = "回复内容") + private String replyContent; + + +} diff --git a/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java b/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java new file mode 100644 index 0000000..79cdd25 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/mapper/SysFeedbackMapper.java @@ -0,0 +1,61 @@ +package com.ff.sys.mapper; + +import java.util.List; +import com.ff.sys.domain.SysFeedback; + +/** + * 系统反馈Mapper接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface SysFeedbackMapper +{ + /** + * 查询系统反馈 + * + * @param id 系统反馈主键 + * @return 系统反馈 + */ + SysFeedback selectSysFeedbackById(Long id); + + /** + * 查询系统反馈列表 + * + * @param sysFeedback 系统反馈 + * @return 系统反馈集合 + */ + List selectSysFeedbackList(SysFeedback sysFeedback); + + /** + * 新增系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int insertSysFeedback(SysFeedback sysFeedback); + + /** + * 修改系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int updateSysFeedback(SysFeedback sysFeedback); + + /** + * 删除系统反馈 + * + * @param id 系统反馈主键 + * @return 结果 + */ + int deleteSysFeedbackById(Long id); + + /** + * 批量删除系统反馈 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteSysFeedbackByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java b/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java new file mode 100644 index 0000000..1a5a43b --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/service/ISysFeedbackService.java @@ -0,0 +1,61 @@ +package com.ff.sys.service; + +import java.util.List; +import com.ff.sys.domain.SysFeedback; + +/** + * 系统反馈Service接口 + * + * @author shi + * @date 2025-02-27 + */ +public interface ISysFeedbackService +{ + /** + * 查询系统反馈 + * + * @param id 系统反馈主键 + * @return 系统反馈 + */ + SysFeedback selectSysFeedbackById(Long id); + + /** + * 查询系统反馈列表 + * + * @param sysFeedback 系统反馈 + * @return 系统反馈集合 + */ + List selectSysFeedbackList(SysFeedback sysFeedback); + + /** + * 新增系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int insertSysFeedback(SysFeedback sysFeedback); + + /** + * 修改系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + int updateSysFeedback(SysFeedback sysFeedback); + + /** + * 批量删除系统反馈 + * + * @param ids 需要删除的系统反馈主键集合 + * @return 结果 + */ + int deleteSysFeedbackByIds(Long[] ids); + + /** + * 删除系统反馈信息 + * + * @param id 系统反馈主键 + * @return 结果 + */ + int deleteSysFeedbackById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java b/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java new file mode 100644 index 0000000..478565a --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/service/impl/SysFeedbackServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.sys.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.sys.mapper.SysFeedbackMapper; +import com.ff.sys.domain.SysFeedback; +import com.ff.sys.service.ISysFeedbackService; +import cn.hutool.core.util.IdUtil; + + +/** + * 系统反馈Service业务层处理 + * + * @author shi + * @date 2025-02-27 + */ +@Service +public class SysFeedbackServiceImpl implements ISysFeedbackService +{ + @Autowired + private SysFeedbackMapper sysFeedbackMapper; + + /** + * 查询系统反馈 + * + * @param id 系统反馈主键 + * @return 系统反馈 + */ + @Override + public SysFeedback selectSysFeedbackById(Long id) + { + return sysFeedbackMapper.selectSysFeedbackById(id); + } + + /** + * 查询系统反馈列表 + * + * @param sysFeedback 系统反馈 + * @return 系统反馈 + */ + @Override + public List selectSysFeedbackList(SysFeedback sysFeedback) + { + return sysFeedbackMapper.selectSysFeedbackList(sysFeedback); + } + + /** + * 新增系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + @Override + public int insertSysFeedback(SysFeedback sysFeedback) + { + sysFeedback.setId(IdUtil.getSnowflakeNextId()); + sysFeedback.setCreateTime(DateUtils.getNowDate()); + return sysFeedbackMapper.insertSysFeedback(sysFeedback); + } + + /** + * 修改系统反馈 + * + * @param sysFeedback 系统反馈 + * @return 结果 + */ + @Override + public int updateSysFeedback(SysFeedback sysFeedback) + { + sysFeedback.setUpdateTime(DateUtils.getNowDate()); + return sysFeedbackMapper.updateSysFeedback(sysFeedback); + } + + /** + * 批量删除系统反馈 + * + * @param ids 需要删除的系统反馈主键 + * @return 结果 + */ + @Override + public int deleteSysFeedbackByIds(Long[] ids) + { + return sysFeedbackMapper.deleteSysFeedbackByIds(ids); + } + + /** + * 删除系统反馈信息 + * + * @param id 系统反馈主键 + * @return 结果 + */ + @Override + public int deleteSysFeedbackById(Long id) + { + return sysFeedbackMapper.deleteSysFeedbackById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java new file mode 100644 index 0000000..322d9a5 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java @@ -0,0 +1,74 @@ +package com.ff.tenant.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.base.system.domain.TenantWhite; +import com.ff.base.system.service.ITenantWhiteService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 租户白名单Controller + * + * @author shi + * @date 2025-02-27 + */ +@RestController +@RequestMapping("/tenant/white") +public class TenantWhiteController extends BaseController +{ + @Autowired + private ITenantWhiteService tenantWhiteService; + + /** + * 查询租户白名单列表 + */ + @PreAuthorize("@ss.hasPermi('tenant:white:list')") + @GetMapping("/list") + public TableDataInfo list(TenantWhite tenantWhite) + { + startPage(); + tenantWhite.setTenantId(getUserId()); + List list = tenantWhiteService.selectTenantWhiteList(tenantWhite); + return getDataTable(list); + } + + + /** + * 新增租户白名单 + */ + @PreAuthorize("@ss.hasPermi('tenant:white:add')") + @Log(title = "租户白名单", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TenantWhite tenantWhite) + { + tenantWhite.setTenantId(getUserId()); + tenantWhite.setCreateBy(getUsername()); + return toAjax(tenantWhiteService.insertTenantWhite(tenantWhite)); + } + + /** + * 删除租户白名单 + */ + @PreAuthorize("@ss.hasPermi('tenant:white:remove')") + @Log(title = "租户白名单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tenantWhiteService.deleteTenantWhiteByIds(ids)); + } +} diff --git a/ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml b/ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml new file mode 100644 index 0000000..d4341a2 --- /dev/null +++ b/ff-game/src/main/resources/mapper/sys/SysFeedbackMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + select id, user_type, user_id, title, phone, content, status, reply_content, create_by, create_time, update_by, update_time from ff_sys_feedback + + + + + + + + insert into ff_sys_feedback + + id, + user_type, + user_id, + title, + phone, + content, + status, + reply_content, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{userType}, + #{userId}, + #{title}, + #{phone}, + #{content}, + #{status}, + #{replyContent}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_sys_feedback + + user_type = #{userType}, + user_id = #{userId}, + title = #{title}, + phone = #{phone}, + content = #{content}, + status = #{status}, + reply_content = #{replyContent}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_sys_feedback where id = #{id} + + + + delete from ff_sys_feedback where id in + + #{id} + + + \ No newline at end of file From 53d0edef5d5340d1f15c565711f3b28b0834e26b Mon Sep 17 00:00:00 2001 From: shi Date: Fri, 28 Feb 2025 14:01:47 +0800 Subject: [PATCH 04/12] =?UTF-8?q?feat(sys):=20=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=85=AC=E5=91=8A=E6=A8=A1=E5=9D=97=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=A7=9F=E6=88=B7=E4=BF=A1=E6=81=AF=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增系统公告相关接口、控制器、服务、Mapper和XML文件 - 修改租户信息获取逻辑,按币种获取平台信息 -优化租户白名单相关接口,移除权限控制 --- .../system/mapper/TenantPlatformMapper.java | 10 ++ .../service/ITenantPlatformService.java | 8 ++ .../impl/TenantPlatformServiceImpl.java | 12 +++ .../mapper/system/TenantPlatformMapper.xml | 6 ++ .../sys/controller/SysNoticeController.java | 93 +++++++++++++++++ .../java/com/ff/sys/domain/SysNotice.java | 29 ++++++ .../com/ff/sys/mapper/SysNoticeMapper.java | 61 ++++++++++++ .../com/ff/sys/service/ISysNoticeService.java | 61 ++++++++++++ .../service/impl/SysNoticeServiceImpl.java | 99 +++++++++++++++++++ .../tenant/controller/TenantController.java | 13 ++- .../controller/TenantWhiteController.java | 3 - .../java/com/ff/tenant/dto/TenantDTO.java | 4 +- .../resources/mapper/sys/SysNoticeMapper.xml | 79 +++++++++++++++ 13 files changed, 469 insertions(+), 9 deletions(-) create mode 100644 ff-game/src/main/java/com/ff/sys/controller/SysNoticeController.java create mode 100644 ff-game/src/main/java/com/ff/sys/domain/SysNotice.java create mode 100644 ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java create mode 100644 ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java create mode 100644 ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java create mode 100644 ff-game/src/main/resources/mapper/sys/SysNoticeMapper.xml diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java index 92cb060..b4d607f 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java @@ -19,6 +19,16 @@ public interface TenantPlatformMapper */ TenantPlatform selectTenantPlatformById(Long id); + + /** + * 按租户id选择货币代码 + * + * @param tenantId 租户id + * @return {@link List }<{@link String }> + */ + List selectCurrencyCodeByTenantId(Long tenantId); + + /** * 查询租户成本管理列表 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java index 664e047..0ff8a37 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java @@ -27,6 +27,14 @@ public interface ITenantPlatformService */ List selectTenantPlatformList(TenantPlatform tenantPlatform); + /** + * 按租户id选择货币代码 + * + * @param tenantId 租户id + * @return {@link List }<{@link String }> + */ + List selectCurrencyCodeByTenantId(Long tenantId); + /** * 新增租户成本管理 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java index 34bce54..74856f2 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java @@ -1,5 +1,6 @@ package com.ff.base.system.service.impl; +import java.util.Collections; import java.util.List; import com.ff.base.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +47,17 @@ public class TenantPlatformServiceImpl implements ITenantPlatformService return tenantPlatformMapper.selectTenantPlatformList(tenantPlatform); } + /** + * 按租户id选择货币代码 + * + * @param tenantId 租户id + * @return {@link List }<{@link String }> + */ + @Override + public List selectCurrencyCodeByTenantId(Long tenantId) { + return tenantPlatformMapper.selectCurrencyCodeByTenantId(tenantId); + } + /** * 新增租户成本管理 * diff --git a/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml index 54884c7..0b62204 100644 --- a/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml +++ b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml @@ -37,6 +37,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + insert into ff_tenant_platform diff --git a/ff-game/src/main/java/com/ff/sys/controller/SysNoticeController.java b/ff-game/src/main/java/com/ff/sys/controller/SysNoticeController.java new file mode 100644 index 0000000..e4a5477 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/controller/SysNoticeController.java @@ -0,0 +1,93 @@ +package com.ff.sys.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.sys.domain.SysNotice; +import com.ff.sys.service.ISysNoticeService; +import com.ff.base.utils.poi.ExcelUtil; +import com.ff.base.core.page.TableDataInfo; + +/** + * 系统公告Controller + * + * @author shi + * @date 2025-02-28 + */ +@RestController +@RequestMapping("/sys/notice") +public class SysNoticeController extends BaseController +{ + @Autowired + private ISysNoticeService sysNoticeService; + + /** + * 查询系统公告列表 + */ + @PreAuthorize("@ss.hasPermi('sys:notice:list')") + @GetMapping("/list") + public TableDataInfo list(SysNotice sysNotice) + { + startPage(); + List list = sysNoticeService.selectSysNoticeList(sysNotice); + return getDataTable(list); + } + + + + /** + * 获取系统公告详细信息 + */ + @PreAuthorize("@ss.hasPermi('sys:notice:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sysNoticeService.selectSysNoticeById(id)); + } + + /** + * 新增系统公告 + */ + @PreAuthorize("@ss.hasPermi('sys:notice:add')") + @Log(title = "系统公告", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysNotice sysNotice) + { + return toAjax(sysNoticeService.insertSysNotice(sysNotice)); + } + + /** + * 修改系统公告 + */ + @PreAuthorize("@ss.hasPermi('sys:notice:edit')") + @Log(title = "系统公告", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysNotice sysNotice) + { + return toAjax(sysNoticeService.updateSysNotice(sysNotice)); + } + + /** + * 删除系统公告 + */ + @PreAuthorize("@ss.hasPermi('sys:notice:remove')") + @Log(title = "系统公告", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sysNoticeService.deleteSysNoticeByIds(ids)); + } +} diff --git a/ff-game/src/main/java/com/ff/sys/domain/SysNotice.java b/ff-game/src/main/java/com/ff/sys/domain/SysNotice.java new file mode 100644 index 0000000..a36fff3 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/domain/SysNotice.java @@ -0,0 +1,29 @@ +package com.ff.sys.domain; + +import com.ff.base.annotation.Excel; +import com.ff.base.core.domain.BaseEntity; +import lombok.Data; +/** + * 系统公告对象 ff_sys_notice + * + * @author shi + * @date 2025-02-28 + */ +@Data +public class SysNotice extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 标题 */ + @Excel(name = "标题") + private String title; + + /** 内容 */ + @Excel(name = "内容") + private String content; + + +} diff --git a/ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java b/ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java new file mode 100644 index 0000000..3adc3a6 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/mapper/SysNoticeMapper.java @@ -0,0 +1,61 @@ +package com.ff.sys.mapper; + +import java.util.List; +import com.ff.sys.domain.SysNotice; + +/** + * 系统公告Mapper接口 + * + * @author shi + * @date 2025-02-28 + */ +public interface SysNoticeMapper +{ + /** + * 查询系统公告 + * + * @param id 系统公告主键 + * @return 系统公告 + */ + SysNotice selectSysNoticeById(Long id); + + /** + * 查询系统公告列表 + * + * @param sysNotice 系统公告 + * @return 系统公告集合 + */ + List selectSysNoticeList(SysNotice sysNotice); + + /** + * 新增系统公告 + * + * @param sysNotice 系统公告 + * @return 结果 + */ + int insertSysNotice(SysNotice sysNotice); + + /** + * 修改系统公告 + * + * @param sysNotice 系统公告 + * @return 结果 + */ + int updateSysNotice(SysNotice sysNotice); + + /** + * 删除系统公告 + * + * @param id 系统公告主键 + * @return 结果 + */ + int deleteSysNoticeById(Long id); + + /** + * 批量删除系统公告 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteSysNoticeByIds(Long[] ids); +} diff --git a/ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java b/ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java new file mode 100644 index 0000000..bc2d210 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/service/ISysNoticeService.java @@ -0,0 +1,61 @@ +package com.ff.sys.service; + +import java.util.List; +import com.ff.sys.domain.SysNotice; + +/** + * 系统公告Service接口 + * + * @author shi + * @date 2025-02-28 + */ +public interface ISysNoticeService +{ + /** + * 查询系统公告 + * + * @param id 系统公告主键 + * @return 系统公告 + */ + SysNotice selectSysNoticeById(Long id); + + /** + * 查询系统公告列表 + * + * @param sysNotice 系统公告 + * @return 系统公告集合 + */ + List selectSysNoticeList(SysNotice sysNotice); + + /** + * 新增系统公告 + * + * @param sysNotice 系统公告 + * @return 结果 + */ + int insertSysNotice(SysNotice sysNotice); + + /** + * 修改系统公告 + * + * @param sysNotice 系统公告 + * @return 结果 + */ + int updateSysNotice(SysNotice sysNotice); + + /** + * 批量删除系统公告 + * + * @param ids 需要删除的系统公告主键集合 + * @return 结果 + */ + int deleteSysNoticeByIds(Long[] ids); + + /** + * 删除系统公告信息 + * + * @param id 系统公告主键 + * @return 结果 + */ + int deleteSysNoticeById(Long id); +} diff --git a/ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java b/ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java new file mode 100644 index 0000000..497c005 --- /dev/null +++ b/ff-game/src/main/java/com/ff/sys/service/impl/SysNoticeServiceImpl.java @@ -0,0 +1,99 @@ +package com.ff.sys.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.sys.mapper.SysNoticeMapper; +import com.ff.sys.domain.SysNotice; +import com.ff.sys.service.ISysNoticeService; +import cn.hutool.core.util.IdUtil; + + +/** + * 系统公告Service业务层处理 + * + * @author shi + * @date 2025-02-28 + */ +@Service +public class SysNoticeServiceImpl implements ISysNoticeService +{ + @Autowired + private SysNoticeMapper sysNoticeMapper; + + /** + * 查询系统公告 + * + * @param id 系统公告主键 + * @return 系统公告 + */ + @Override + public SysNotice selectSysNoticeById(Long id) + { + return sysNoticeMapper.selectSysNoticeById(id); + } + + /** + * 查询系统公告列表 + * + * @param sysNotice 系统公告 + * @return 系统公告 + */ + @Override + public List selectSysNoticeList(SysNotice sysNotice) + { + return sysNoticeMapper.selectSysNoticeList(sysNotice); + } + + /** + * 新增系统公告 + * + * @param sysNotice 系统公告 + * @return 结果 + */ + @Override + public int insertSysNotice(SysNotice sysNotice) + { + sysNotice.setId(IdUtil.getSnowflakeNextId()); + sysNotice.setCreateTime(DateUtils.getNowDate()); + return sysNoticeMapper.insertSysNotice(sysNotice); + } + + /** + * 修改系统公告 + * + * @param sysNotice 系统公告 + * @return 结果 + */ + @Override + public int updateSysNotice(SysNotice sysNotice) + { + sysNotice.setUpdateTime(DateUtils.getNowDate()); + return sysNoticeMapper.updateSysNotice(sysNotice); + } + + /** + * 批量删除系统公告 + * + * @param ids 需要删除的系统公告主键 + * @return 结果 + */ + @Override + public int deleteSysNoticeByIds(Long[] ids) + { + return sysNoticeMapper.deleteSysNoticeByIds(ids); + } + + /** + * 删除系统公告信息 + * + * @param id 系统公告主键 + * @return 结果 + */ + @Override + public int deleteSysNoticeById(Long id) + { + return sysNoticeMapper.deleteSysNoticeById(id); + } +} diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java index b8ce94f..9df1415 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java @@ -41,7 +41,6 @@ public class TenantController extends BaseController { * * @return {@link AjaxResult } */ - @PreAuthorize("@ss.hasPermi('tenant:info:query')") @GetMapping public AjaxResult getInfo() { TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyById(getUserId()); @@ -50,12 +49,18 @@ public class TenantController extends BaseController { .tenantGameQuotaList(tenantGameQuotaService.selectTenantGameQuotaList(TenantGameQuota.builder() .tenantKey(tenantSecretKey.getTenantKey()) .build())) - .tenantPlatforms(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder() - .tenantId(tenantSecretKey.getId()) - .build())) + .currencyCodes(tenantPlatformService.selectCurrencyCodeByTenantId(tenantSecretKey.getId())) .build(); return success(tenantDTO); } + @GetMapping("/platforms/{currencyCode}") + public AjaxResult getTenantPlatformsInfo(@PathVariable("currencyCode") String currencyCode) { + return success(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder() + .currencyCode(currencyCode) + .tenantId(getUserId()) + .build())); + } + } diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java index 322d9a5..58aa1de 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java @@ -37,7 +37,6 @@ public class TenantWhiteController extends BaseController /** * 查询租户白名单列表 */ - @PreAuthorize("@ss.hasPermi('tenant:white:list')") @GetMapping("/list") public TableDataInfo list(TenantWhite tenantWhite) { @@ -51,7 +50,6 @@ public class TenantWhiteController extends BaseController /** * 新增租户白名单 */ - @PreAuthorize("@ss.hasPermi('tenant:white:add')") @Log(title = "租户白名单", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody TenantWhite tenantWhite) @@ -64,7 +62,6 @@ public class TenantWhiteController extends BaseController /** * 删除租户白名单 */ - @PreAuthorize("@ss.hasPermi('tenant:white:remove')") @Log(title = "租户白名单", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) diff --git a/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java b/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java index 2618e82..120310b 100644 --- a/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java +++ b/ff-game/src/main/java/com/ff/tenant/dto/TenantDTO.java @@ -34,7 +34,7 @@ public class TenantDTO implements java.io.Serializable{ private List tenantGameQuotaList; /** - * 租户平台 + * 租户平台 币种 */ - private List tenantPlatforms; + private List currencyCodes; } diff --git a/ff-game/src/main/resources/mapper/sys/SysNoticeMapper.xml b/ff-game/src/main/resources/mapper/sys/SysNoticeMapper.xml new file mode 100644 index 0000000..e340eb8 --- /dev/null +++ b/ff-game/src/main/resources/mapper/sys/SysNoticeMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + select id, title, content, create_by, create_time, update_by, update_time from ff_sys_notice + + + + + + + + insert into ff_sys_notice + + id, + title, + content, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{title}, + #{content}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ff_sys_notice + + title = #{title}, + content = #{content}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ff_sys_notice where id = #{id} + + + + delete from ff_sys_notice where id in + + #{id} + + + \ No newline at end of file From dc6e3966ff9acf8c7c4edb3c5352f23880345390 Mon Sep 17 00:00:00 2001 From: shi Date: Fri, 28 Feb 2025 14:50:31 +0800 Subject: [PATCH 05/12] =?UTF-8?q?refactor(tenant):=20=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=90=8D=E4=BD=9C=E4=B8=BA=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在四个控制器中,将固定的租户键"kk1game_kk1game"替换为动态获取的用户名 - 此修改提高了系统的灵活性和可扩展性,支持多租户环境 --- .../ff/tenant/controller/TenantBettingDetailsController.java | 2 +- .../java/com/ff/tenant/controller/TenantExchangeController.java | 2 +- .../java/com/ff/tenant/controller/TenantQuotaController.java | 2 +- .../com/ff/tenant/controller/TenantQuotaFlowController.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java index 068db7a..41064d0 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantBettingDetailsController.java @@ -47,7 +47,7 @@ public class TenantBettingDetailsController extends BaseController { @GetMapping("/list") public TableDataInfo list(GameBettingDetails gameBettingDetails) { - gameBettingDetails.setTenantKey("kk1game_kk1game"); + gameBettingDetails.setTenantKey(getUsername()); startPage(); List gameBettingDetailsList = gameBettingDetailsService.selectGameBettingDetailsList(gameBettingDetails); return getDataTable(gameBettingDetailsList); diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java index e95d0a4..c1f4dd3 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java @@ -41,7 +41,7 @@ public class TenantExchangeController extends BaseController { @PreAuthorize("@ss.hasPermi('tenant:exchange:list')") @GetMapping("/list") public TableDataInfo list(GameExchangeMoneyDTO gameExchangeMoneyDTO) { - gameExchangeMoneyDTO.setTenantKey("kk1game_kk1game"); + gameExchangeMoneyDTO.setTenantKey(getUsername()); startPage(); List gameExchangeMoneyDTOS = gameExchangeMoneyService.selectGameExchangeMoneyDTOList(gameExchangeMoneyDTO); return getDataTable(gameExchangeMoneyDTOS); diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java index aa3c920..2812be4 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaController.java @@ -39,7 +39,7 @@ public class TenantQuotaController extends BaseController { @GetMapping("/list") public TableDataInfo list(GameBettingDetails gameBettingDetails) { - gameBettingDetails.setTenantKey("kk1game_kk1game"); + gameBettingDetails.setTenantKey(getUsername()); startPage(); List gameBettingDetailsList = gameBettingDetailsService.selectGameBettingDetailsList(gameBettingDetails); return getDataTable(gameBettingDetailsList); diff --git a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java index 72ef54c..55948ac 100644 --- a/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantQuotaFlowController.java @@ -42,7 +42,7 @@ public class TenantQuotaFlowController extends BaseController { @GetMapping("/list") public TableDataInfo list(TenantGameQuotaFlow tenantGameQuotaFlow) { - tenantGameQuotaFlow.setTenantKey("kk1game_kk1game"); + tenantGameQuotaFlow.setTenantKey(getUsername()); startPage(); List tenantGameQuotaFlows = tenantGameQuotaFlowService.selectTenantGameQuotaFlowList(tenantGameQuotaFlow); return getDataTable(tenantGameQuotaFlows); From b29e21816c00e0fbc2dbe76ba0bf3508cb111858 Mon Sep 17 00:00:00 2001 From: shi Date: Sat, 1 Mar 2025 13:31:32 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat(game):=20=E6=B7=BB=E5=8A=A0=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=88=90=E6=9C=AC=E8=AE=A1=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 Constants 中添加 HUNDRED 常量,用于成本计算 - 在 ITenantPlatformService 中添加 findTenantPlatform 方法,用于获取租户平台信息 - 修改 TenantGameQuotaFlowMapper,增加 platform_code 字段查询 - 更新 TenantGameQuotaServiceImpl 中的 balanceChanges 方法,加入平台成本计算逻辑 - 在 TenantPlatformMapper 中添加 findTenantPlatform 方法的 SQL 查询- 更新 TenantPlatformServiceImpl,实现 findTenantPlatform 方法 - 修改 TenantQuotaTask 中的 updateBalance 方法,考虑平台成本因素 --- .../java/com/ff/base/constant/Constants.java | 5 +++ .../system/mapper/TenantPlatformMapper.java | 9 +++++ .../service/ITenantPlatformService.java | 9 +++++ .../impl/TenantPlatformServiceImpl.java | 11 +++++++ .../mapper/system/TenantPlatformMapper.xml | 13 ++++++++ .../impl/TenantGameQuotaServiceImpl.java | 33 +++++++++++++++---- .../com/ff/quartz/task/TenantQuotaTask.java | 8 +++++ .../common/TenantGameQuotaFlowMapper.xml | 7 ++-- 8 files changed, 86 insertions(+), 9 deletions(-) diff --git a/ff-base/src/main/java/com/ff/base/constant/Constants.java b/ff-base/src/main/java/com/ff/base/constant/Constants.java index d93fd78..38b649b 100644 --- a/ff-base/src/main/java/com/ff/base/constant/Constants.java +++ b/ff-base/src/main/java/com/ff/base/constant/Constants.java @@ -2,6 +2,7 @@ package com.ff.base.constant; import io.jsonwebtoken.Claims; +import java.math.BigDecimal; import java.util.Locale; /** @@ -261,4 +262,8 @@ public class Constants { * 租户角色 */ public static final String TENANT_ROLE = "tenant"; + /** + * 一百 + */ + public static final BigDecimal HUNDRED =new BigDecimal("100") ; } diff --git a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java index b4d607f..4a24981 100644 --- a/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java @@ -20,6 +20,15 @@ public interface TenantPlatformMapper TenantPlatform selectTenantPlatformById(Long id); + /** + * 查找租户平台 + * + * @param tenantPlatform 租户平台 + * @return {@link TenantPlatform } + */ + TenantPlatform findTenantPlatform(TenantPlatform tenantPlatform); + + /** * 按租户id选择货币代码 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java index 0ff8a37..786cbc7 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java @@ -19,6 +19,15 @@ public interface ITenantPlatformService */ TenantPlatform selectTenantPlatformById(Long id); + /** + * 查找租户平台 + * + * @param tenantPlatform 租户平台 + * @return {@link TenantPlatform } + */ + TenantPlatform findTenantPlatform(TenantPlatform tenantPlatform); + + /** * 查询租户成本管理列表 * diff --git a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java index 74856f2..0e3f11f 100644 --- a/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java @@ -35,6 +35,17 @@ public class TenantPlatformServiceImpl implements ITenantPlatformService return tenantPlatformMapper.selectTenantPlatformById(id); } + /** + * 查找租户平台 + * + * @param tenantPlatform 租户平台 + * @return {@link TenantPlatform } + */ + @Override + public TenantPlatform findTenantPlatform(TenantPlatform tenantPlatform) { + return tenantPlatformMapper.findTenantPlatform(tenantPlatform); + } + /** * 查询租户成本管理列表 * diff --git a/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml index 0b62204..740541a 100644 --- a/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml +++ b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml @@ -37,6 +37,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + + select tenant_key, sum(if(is_out, exchange_money, 0)) - sum(if(!is_out, exchange_money, 0)) as exchange_money, - currency_code + currency_code, + platform_code from ff_tenant_game_quota_flow where create_time between #{params.beginTime} and #{params.endTime} and quota_type = #{quotaType} - and operation_type = #{operationType} - group by tenant_key, currency_code + and operation_type = #{operationType} and currency_code is not null and platform_code is not null + group by tenant_key,platform_code, currency_code \ No newline at end of file From 790720446a56e010ea518101ea2991f2cede0d41 Mon Sep 17 00:00:00 2001 From: shi Date: Sat, 1 Mar 2025 14:26:33 +0800 Subject: [PATCH 07/12] =?UTF-8?q?refactor(sh):=20=E7=A7=BB=E9=99=A4=20ngin?= =?UTF-8?q?x.sh=20=E4=B8=AD=E7=9A=84=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了检查 $packUrl/dist目录是否存在的逻辑 -移除了多余的空行,优化了代码结构 --- sh/linux/nginx.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sh/linux/nginx.sh b/sh/linux/nginx.sh index 8942938..e221f8e 100644 --- a/sh/linux/nginx.sh +++ b/sh/linux/nginx.sh @@ -18,8 +18,7 @@ packUrl=$3 cd "$packUrl" || { echo "Error: Failed to change directory to $packUrl"; exit 1; } -# 检查 $packUrl/dist 路径是否存在存在就不需要打包 -if [ ! -d "$packUrl/dist" ]; then + # 执行构建命令 @@ -27,7 +26,7 @@ npm install npm run build -- --tenant="$tenantName" -fi + # 删除目标目录下的所有文件和子目录 From f8c2a6227e42cc5cec876b05921f96a9807f3008 Mon Sep 17 00:00:00 2001 From: shi Date: Sat, 1 Mar 2025 16:08:36 +0800 Subject: [PATCH 08/12] =?UTF-8?q?refactor(ff-game):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E9=AA=8C=E8=AF=81=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了白名单验证失败时的错误提示信息,增加了具体的 IP 地址 - 提高了错误提示的 --- ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java index 707eb99..3563795 100644 --- a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java +++ b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java @@ -76,7 +76,7 @@ public class HeaderCheckAspect { .tenantId(tenantSecretKey.getId()) .whiteIp(IpUtils.getIpAddr()) .build()); - Assert.isTrue(!tenantWhites.isEmpty(), "当前租户不在白名单内"); + Assert.isTrue(!tenantWhites.isEmpty(), "当前"+IpUtils.getIpAddr()+"不在白名单内"); String keyG = Md5Utils.md5New(random + key + tenantSecretKey.getTenantSecret()); Assert.isTrue(keyG.equals(sign), "签名错误"); From 2507b7075b87283dcd3027f8916d058b85541ab8 Mon Sep 17 00:00:00 2001 From: shi Date: Sat, 1 Mar 2025 17:15:12 +0800 Subject: [PATCH 09/12] =?UTF-8?q?refactor(ff-game):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E9=AA=8C=E8=AF=81=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了白名单验证失败时的错误提示信息,增加了具体的 IP 地址 --- sh/linux/publish.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sh/linux/publish.sh b/sh/linux/publish.sh index 7c92dbe..5a1f2e1 100644 --- a/sh/linux/publish.sh +++ b/sh/linux/publish.sh @@ -8,7 +8,7 @@ fi git pull mvn -Dmaven.test.skip=true clean package if [ $? -eq 0 ]; then - cp ff-admin/target/ff-*.jar /opt/gameApi/dist/game-api/ + cp ff-game/target/ff-*.jar /opt/gameApi/dist/game-api/ else echo "fail" From bff4cc7f8f9a8afdeb405c14f5ba5cc9f43772a0 Mon Sep 17 00:00:00 2001 From: shi Date: Sat, 1 Mar 2025 17:17:58 +0800 Subject: [PATCH 10/12] =?UTF-8?q?refactor(ff-game):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E9=AA=8C=E8=AF=81=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了白名单验证失败时的错误提示信息,增加了具体的 IP 地址 --- ff-game/src/main/resources/application-prod.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ff-game/src/main/resources/application-prod.yml b/ff-game/src/main/resources/application-prod.yml index 473dd2e..9771e12 100644 --- a/ff-game/src/main/resources/application-prod.yml +++ b/ff-game/src/main/resources/application-prod.yml @@ -10,14 +10,13 @@ server: # 应用的访问路径 context-path: /ff-api - # 日志配置 logging: level: com.ff: debug org.springframework: warn file: - path: D:/opt/sever/dist/ff-admin/logs + path: /opt/gameApi/dist/game-api/logs # 数据源配置 spring: @@ -28,7 +27,7 @@ spring: # 端口,默认为6379 port: 26379 # 数据库索引 - database: 0 + database: 1 # 密码 password: reAa123456 # 连接超时时间 @@ -51,8 +50,8 @@ spring: # 主库数据源 master: url: jdbc:mysql://127.0.0.1:23306/ff-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true - username: root - password: myAa123456 + username: ff-game + password: bmGCJCyhfDXnPspe # 初始连接数 initialSize: 5 # 最小连接池数量 From 9ef8d8c2e522c882dc90d2f19dcff4cb78befc2c Mon Sep 17 00:00:00 2001 From: shi Date: Sat, 1 Mar 2025 18:10:09 +0800 Subject: [PATCH 11/12] =?UTF-8?q?refactor(ff-game):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20key=20=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF-=20=E5=9C=A8=20He?= =?UTF-8?q?aderCheckAspect=20=E7=B1=BB=E4=B8=AD=EF=BC=8C=E5=B0=86=20key=20?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E4=BB=8E=20"key=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8"=20=E4=BF=AE=E6=94=B9=E4=B8=BA=20"{key}key?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8"=20-=E8=BF=99=E6=A0=B7=E7=9A=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=BF=E5=BE=97=E9=94=99=E8=AF=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=9B=B4=E5=8A=A0=E5=85=B7=E4=BD=93=EF=BC=8C=E8=83=BD?= =?UTF-8?q?=E5=A4=9F=E7=9B=B4=E6=8E=A5=E6=98=BE=E7=A4=BA=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E7=9A=84=20key=20=E5=80=BC=EF=BC=8C=E4=BE=BF=E4=BA=8E=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E5=92=8C=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java index 3563795..595be47 100644 --- a/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java +++ b/ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java @@ -68,7 +68,7 @@ public class HeaderCheckAspect { TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyByTenantKey(key); - Assert.notNull(tenantSecretKey, "key不存在"); + Assert.notNull(tenantSecretKey, key+"key不存在"); Assert.isTrue(tenantSecretKey.getTenantStatus(), "当前租户已停用"); From 8289375ff2210143762a52ad7df4385ca246b160 Mon Sep 17 00:00:00 2001 From: shi Date: Tue, 4 Mar 2025 14:40:36 +0800 Subject: [PATCH 12/12] =?UTF-8?q?feat(agent):=20=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E4=BD=A3=E9=87=91=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TenantAgentCommissionController.java | 32 +- .../mapper/TenantAgentCommissionMapper.java | 11 + .../ITenantAgentCommissionService.java | 10 + .../TenantAgentCommissionServiceImpl.java | 12 + .../agent/TenantAgentCommissionMapper.xml | 402 +++++++++++++----- 5 files changed, 367 insertions(+), 100 deletions(-) diff --git a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java index 6c18054..2730bf6 100644 --- a/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java @@ -12,6 +12,8 @@ import com.ff.agent.service.ITenantAgentWithdrawalService; import com.ff.base.annotation.Excel; import com.ff.base.constant.Constants; import com.ff.base.enums.CommissionApprovalStatus; +import com.ff.base.enums.CommissionSourceType; +import com.ff.base.enums.CommissionType; import com.ff.base.system.domain.TenantAgent; import com.ff.base.system.service.ITenantAgentService; import com.github.pagehelper.util.StringUtil; @@ -59,14 +61,40 @@ public class TenantAgentCommissionController extends BaseController { */ @PreAuthorize("@ss.hasPermi('agent:commission:list')") @GetMapping("/list") - public TableDataInfo list(TenantAgentCommission tenantAgentCommission) { + public AjaxResult list(TenantAgentCommission tenantAgentCommission) { startPage(); tenantAgentCommission.setAgentId(getUserId()); List list = tenantAgentCommissionService.selectTenantAgentCommissionList(tenantAgentCommission); - return getDataTable(list); + + //未提现佣金 + tenantAgentCommission.setApprovalStatus(CommissionApprovalStatus.UNWITHDRAWN.getValue()); + BigDecimal unwithdrawn = tenantAgentCommissionService.getAgentCommissionSum(tenantAgentCommission); + //已提现佣金 + tenantAgentCommission.setApprovalStatus(CommissionApprovalStatus.WITHDRAWN.getValue()); + BigDecimal withdrawn = tenantAgentCommissionService.getAgentCommissionSum(tenantAgentCommission); + //总佣金 + tenantAgentCommission.setApprovalStatus(null); + BigDecimal total = tenantAgentCommissionService.getAgentCommissionSum(tenantAgentCommission); + + // 邀请佣金 + tenantAgentCommission.setCommissionType(CommissionType.INVITE.getValue()); + BigDecimal invite = tenantAgentCommissionService.getAgentCommissionSum(tenantAgentCommission); + //抽成佣金 + tenantAgentCommission.setCommissionType(CommissionType.TAKE.getValue()); + BigDecimal take = tenantAgentCommissionService.getAgentCommissionSum(tenantAgentCommission); + TableDataInfo dataTable = getDataTable(list); + + AjaxResult ajaxResult = success(dataTable); + ajaxResult.put("unwithdrawn", unwithdrawn); + ajaxResult.put("withdrawn", withdrawn); + ajaxResult.put("total", total); + ajaxResult.put("invite", invite); + ajaxResult.put("take", take); + return ajaxResult; } + /** * 获取代理佣金管理 详细信息 */ diff --git a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java index 09adbfa..e0daaac 100644 --- a/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java @@ -1,5 +1,6 @@ package com.ff.agent.mapper; +import java.math.BigDecimal; import java.util.List; import com.ff.agent.domain.TenantAgentCommission; @@ -58,4 +59,14 @@ public interface TenantAgentCommissionMapper * @return 结果 */ int deleteTenantAgentCommissionByIds(Long[] ids); + + + /** + * 获得代理佣金 + * + * @param tenantAgentCommission 租户代理佣金 + * @return {@link BigDecimal } + */ + BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission); + } diff --git a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java index 68debf0..ce5277a 100644 --- a/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java @@ -1,5 +1,6 @@ package com.ff.agent.service; +import java.math.BigDecimal; import java.util.List; import com.ff.agent.domain.TenantAgentCommission; @@ -27,6 +28,15 @@ public interface ITenantAgentCommissionService */ List selectTenantAgentCommissionList(TenantAgentCommission tenantAgentCommission); + + /** + * 获得代理佣金 + * + * @param tenantAgentCommission 租户代理佣金 + * @return {@link BigDecimal } + */ + BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission); + /** * 新增代理佣金管理 * diff --git a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java index 26a7236..4e0471c 100644 --- a/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java @@ -1,5 +1,6 @@ package com.ff.agent.service.impl; +import java.math.BigDecimal; import java.util.List; import cn.hutool.core.util.IdUtil; @@ -46,6 +47,17 @@ public class TenantAgentCommissionServiceImpl implements ITenantAgentCommissionS return tenantAgentCommissionMapper.selectTenantAgentCommissionList(tenantAgentCommission); } + /** + * 获得代理佣金 + * + * @param tenantAgentCommission 租户代理佣金 + * @return {@link BigDecimal } + */ + @Override + public BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission) { + return tenantAgentCommissionMapper.getAgentCommissionSum(tenantAgentCommission); + } + /** * 新增代理佣金管理 * diff --git a/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml b/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml index 9bc0dbc..69f363a 100644 --- a/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml @@ -1,140 +1,346 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - select id,agent_withdrawal_id,agent_id, source_id, source_type, commission_type, currency_code, platform_code, cost_balance, merchant_balance, balance, commission_balance, usdt_balance, approval_status, create_by, create_time, update_by, update_time from ff_tenant_agent_commission + select id, + agent_withdrawal_id, + agent_id, + source_id, + source_type, + commission_type, + currency_code, + platform_code, + cost_balance, + merchant_balance, + balance, + commission_balance, + usdt_balance, + approval_status, + create_by, + create_time, + update_by, + update_time + from ff_tenant_agent_commission - - and agent_id = #{agentId} - and source_id = #{sourceId} - and source_type = #{sourceType} - and commission_type = #{commissionType} - and currency_code = #{currencyCode} - and platform—_code = #{platformCode} - and cost_balance = #{costBalance} - and merchant_balance = #{merchantBalance} - and balance = #{balance} - and commission_balance = #{commissionBalance} - and usdt_balance = #{usdtBalance} - and approval_status = #{approvalStatus} - + + and agent_id = #{agentId} + + + and source_id = #{sourceId} + + + and source_type = #{sourceType} + + + and commission_type = #{commissionType} + + + and currency_code = #{currencyCode} + + + and platform—_code = #{platformCode} + + + and cost_balance = #{costBalance} + + + and merchant_balance = #{merchantBalance} + + + and balance = #{balance} + + + and commission_balance = #{commissionBalance} + + + and usdt_balance = #{usdtBalance} + + + and approval_status = #{approvalStatus} + + + and create_time >= #{params.beginTime} - - + + and create_time <= #{params.endTime} - - and agent_withdrawal_id = #{agentWithdrawalId} + + and agent_withdrawal_id = #{agentWithdrawalId} + - + + + insert into ff_tenant_agent_commission - id, - agent_id, - source_id, - source_type, - commission_type, - currency_code, - platform—_code, - cost_balance, - merchant_balance, - balance, - commission_balance, - usdt_balance, - approval_status, - create_by, - create_time, - update_by, - update_time, - agent_withdrawal_id, - + + id, + + + agent_id, + + + source_id, + + + source_type, + + + commission_type, + + + currency_code, + + + platform—_code, + + + cost_balance, + + + merchant_balance, + + + balance, + + + commission_balance, + + + usdt_balance, + + + approval_status, + + + create_by, + + + create_time, + + + update_by, + + + update_time, + + + agent_withdrawal_id, + + - #{id}, - #{agentId}, - #{sourceId}, - #{sourceType}, - #{commissionType}, - #{currencyCode}, - #{platformCode}, - #{costBalance}, - #{merchantBalance}, - #{balance}, - #{commissionBalance}, - #{usdtBalance}, - #{approvalStatus}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - #{agentWithdrawalId}, - + + #{id}, + + + #{agentId}, + + + #{sourceId}, + + + #{sourceType}, + + + #{commissionType}, + + + #{currencyCode}, + + + #{platformCode}, + + + #{costBalance}, + + + #{merchantBalance}, + + + #{balance}, + + + #{commissionBalance}, + + + #{usdtBalance}, + + + #{approvalStatus}, + + + #{createBy}, + + + #{createTime}, + + + #{updateBy}, + + + #{updateTime}, + + + #{agentWithdrawalId}, + + update ff_tenant_agent_commission - agent_id = #{agentId}, - source_id = #{sourceId}, - source_type = #{sourceType}, - commission_type = #{commissionType}, - currency_code = #{currencyCode}, - platform—_code = #{platformCode}, - cost_balance = #{costBalance}, - merchant_balance = #{merchantBalance}, - balance = #{balance}, - commission_balance = #{commissionBalance}, - usdt_balance = #{usdtBalance}, - approval_status = #{approvalStatus}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - agent_withdrawal_id = #{agentWithdrawalId}, + + agent_id = #{agentId}, + + + source_id = #{sourceId}, + + + source_type = #{sourceType}, + + + commission_type = #{commissionType}, + + + currency_code = #{currencyCode}, + + + platform—_code = #{platformCode}, + + + cost_balance = #{costBalance}, + + + merchant_balance = #{merchantBalance}, + + + balance = #{balance}, + + + commission_balance = #{commissionBalance}, + + + usdt_balance = #{usdtBalance}, + + + approval_status = #{approvalStatus}, + + + create_by = #{createBy}, + + + create_time = #{createTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + + + agent_withdrawal_id = #{agentWithdrawalId}, + where id = #{id} - delete from ff_tenant_agent_commission where id = #{id} + delete + from ff_tenant_agent_commission + where id = #{id} - delete from ff_tenant_agent_commission where id in + delete from ff_tenant_agent_commission where id in #{id}