From 7b5ab5fd929a1d64d5dd7148a72c5f9c723c8dbb Mon Sep 17 00:00:00 2001 From: shi Date: Tue, 25 Feb 2025 11:37:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(agent):=20=E6=B7=BB=E5=8A=A0=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=A7=9F=E6=88=B7=E5=88=9B=E5=BB=BA=E9=80=BB=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},