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 2392825..0000000 --- a/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java +++ /dev/null @@ -1,124 +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.core.controller.BaseController; -import com.ff.base.core.domain.AjaxResult; -import com.ff.base.core.page.TableDataInfo; -import com.ff.base.system.dto.TenantSecretKeyDTO; -import com.ff.base.system.service.ISysDeptService; -import com.ff.base.system.service.ISysRoleService; -import com.ff.base.system.service.ISysUserService; -import com.ff.base.utils.MessageUtils; -import com.ff.base.utils.SecurityUtils; -import com.ff.base.utils.bean.BeanUtils; -import com.ff.base.utils.uuid.IdUtils; -import com.ff.base.system.domain.TenantSecretKey; -import com.ff.common.service.ITenantGameQuotaService; -import com.ff.base.system.service.ITenantSecretKeyService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.Assert; -import org.springframework.util.CollectionUtils; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; - -/** - * api控制器 - * - * @author shi - * @date 2025/02/10 - */ -@RestController -@RequestMapping("/agent/tenant") -@Slf4j -public class AgentController extends BaseController { - - - @Resource - private ITenantSecretKeyService tenantSecretKeyService; - - @Resource - private ITenantGameQuotaService tenantGameQuotaService; - - @Resource - private ISysRoleService roleService; - - @Resource - private ISysDeptService deptService; - - @Resource - private ISysUserService userService; - - - /** - * 列表 - * - * @param tenantSecretKeyDTO 租户密钥 - * @return {@link TableDataInfo } - */ - @GetMapping("/list") - @Transactional - @PreAuthorize("@ss.hasPermi('agent:tenant:list')") - public TableDataInfo list(TenantSecretKeyDTO tenantSecretKeyDTO) { - startPage(); - tenantSecretKeyDTO.setAgentId(getUserId()); - List tenantSecretKeys = tenantSecretKeyService.selectTenantSecretKeyDTOList(tenantSecretKeyDTO); - TableDataInfo dataTable = getDataTable(tenantSecretKeys); - List list=new ArrayList<>(); - for (TenantSecretKey row : (List) dataTable.getRows()) { - AgentTenantSecretKeyDTO agentTenantSecretKeyDTO=new AgentTenantSecretKeyDTO(); - BeanUtils.copyProperties(row, agentTenantSecretKeyDTO); - list.add(agentTenantSecretKeyDTO); - } - dataTable.setRows(list); - - return dataTable; - } - - - /** - * 信息 - * - * @return {@link AjaxResult } - */ - @PostMapping("/create") - @Transactional - @PreAuthorize("@ss.hasPermi('agent:tenant:create')") - public AjaxResult createTenant(@Validated @RequestBody AgentCreateTenantRequest agentCreateTenantRequest) { - - Assert.isTrue(CollectionUtils.isEmpty(tenantSecretKeyService.selectTenantSecretKeyList(TenantSecretKey.builder() - .tenantKey(agentCreateTenantRequest.getAccount()) - .build())), MessageUtils.message("operation.tenant.account.already.used")); - - Assert.isTrue(agentCreateTenantRequest.getPassword().equals(agentCreateTenantRequest.getConfirmPassword()),MessageUtils.message("operation.password.mismatch")); - //创建租户 - TenantSecretKey tenantSecretKey = new TenantSecretKey(); - tenantSecretKey.setAgentId(getUserId()); - tenantSecretKey.setTenantKey(agentCreateTenantRequest.getAccount()); - tenantSecretKey.setPassword(SecurityUtils.encryptPassword(agentCreateTenantRequest.getPassword())); - tenantSecretKey.setTenantSn(tenantSecretKeyService.generateTenantSn()); - tenantSecretKey.setTenantSecret(IdUtils.simpleUUID()); - tenantSecretKey.setDepositRatio(agentCreateTenantRequest.getDepositRatio()); - tenantSecretKey.setTenantType(agentCreateTenantRequest.getTenantType()); - tenantSecretKey.setCreateBy(getUsername()); - tenantSecretKey.setTenantStatus(Boolean.TRUE); - int insertedTenantSecretKey = tenantSecretKeyService.insertTenantSecretKey(tenantSecretKey); - - - return toAjax(insertedTenantSecretKey); - } - - - - - - -} diff --git a/ff-admin/src/main/java/com/ff/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/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/TenantAgentMapper.xml b/ff-admin/src/main/resources/mapper/common/TenantAgentMapper.xml deleted file mode 100644 index d989609..0000000 --- a/ff-admin/src/main/resources/mapper/common/TenantAgentMapper.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - select id, account, password, agent_status, create_by, create_time, update_by, update_time from ff_tenant_agent - - - - - - - - insert into ff_tenant_agent - id, - account, - password, - agent_status, - create_by, - create_time, - update_by, - update_time, - - #{id}, - #{account}, - #{password}, - #{agentStatus}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update ff_tenant_agent - - account = #{account}, - password = #{password}, - agent_status = #{agentStatus}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from ff_tenant_agent where id = #{id} - - - - delete from ff_tenant_agent where id in - - #{id} - - - \ No newline at end of file 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/common/TenantGameQuotaMapper.xml b/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml deleted file mode 100644 index 85c0d1f..0000000 --- a/ff-admin/src/main/resources/mapper/common/TenantGameQuotaMapper.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - select id, tenant_key, balance, quota_type, version, create_by, create_time, update_by, update_time from ff_tenant_game_quota - - - - - - - - - - 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}, - - - - - 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}, - - where id = #{id} - - - - delete from ff_tenant_game_quota where id = #{id} - - - - delete from ff_tenant_game_quota 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/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/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/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/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/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/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/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..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 @@ -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; /** @@ -138,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/TenantAgent.java b/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java new file mode 100644 index 0000000..0af0653 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/domain/TenantAgent.java @@ -0,0 +1,76 @@ +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_agent + * + * @author shi + * @date 2025-02-25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TenantAgent extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 账号 */ + @Excel(name = "账号") + private String account; + + /** 密码 */ + @Excel(name = "密码") + private String password; + + /** 注册时间 */ + @Excel(name = "注册时间") + @JsonSerialize(using = ToStringSerializer.class) + 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 = "最后登录时间") + @JsonSerialize(using = ToStringSerializer.class) + private Long loginData; + + /** 租户状态 1正常 0停用 */ + @Excel(name = "租户状态 1正常 0停用") + 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 0780728..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 @@ -2,8 +2,9 @@ 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; @@ -15,7 +16,7 @@ import lombok.NoArgsConstructor; * 用户租户密钥对象 ff_tenant_secret_key * * @author shi - * @date 2025-02-20 + * @date 2025-02-25 */ @Data @AllArgsConstructor @@ -26,44 +27,51 @@ public class TenantSecretKey extends BaseEntity private static final long serialVersionUID = 1L; /** 主键id */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; - - + /** 租户key */ + @Excel(name = "租户key") + private String tenantKey; /** 密码 */ @Excel(name = "密码") @JsonIgnore private String password; + /** 注册时间 */ + @JsonSerialize(using = ToStringSerializer.class) + @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; /** 最后登录时间 */ + @JsonSerialize(using = ToStringSerializer.class) @Excel(name = "最后登录时间") private Long loginData; - - - /** 租户key */ - @Excel(name = "租户key") - private String tenantKey; - - /** 代理id */ - @Excel(name = "代理id") + /** 上级代理id */ + @JsonSerialize(using = ToStringSerializer.class) + @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/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/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 new file mode 100644 index 0000000..309b1eb --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantAgentMapper.java @@ -0,0 +1,70 @@ +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 account 账户 + * @return {@link TenantAgent } + */ + TenantAgent selectTenantAgentByAccount(String account); + + /** + * 查询代理列表 + * + * @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/mapper/TenantPlatformMapper.java b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java new file mode 100644 index 0000000..4a24981 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/mapper/TenantPlatformMapper.java @@ -0,0 +1,80 @@ +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 {@link TenantPlatform } + */ + TenantPlatform findTenantPlatform(TenantPlatform tenantPlatform); + + + /** + * 按租户id选择货币代码 + * + * @param tenantId 租户id + * @return {@link List }<{@link String }> + */ + List selectCurrencyCodeByTenantId(Long tenantId); + + + /** + * 查询租户成本管理列表 + * + * @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/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/ITenantAgentService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java new file mode 100644 index 0000000..1f55c55 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantAgentService.java @@ -0,0 +1,88 @@ +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 username 用户名 + * @param password 密码 + * @return {@link String } + */ + String login(String username, String password); + + /** + * 按帐户选择租户代理 + * + * @param account 账户 + * @return {@link TenantAgent } + */ + TenantAgent selectTenantAgentByAccount(String account); + + + /** + * 查询代理列表 + * + * @param tenantAgent 代理 + * @return 代理集合 + */ + List selectTenantAgentList(TenantAgent tenantAgent); + + /** + * 新增代理 + * + * @param tenantAgent 代理 + * @return 结果 + */ + int insertTenantAgent(TenantAgent tenantAgent); + + /** + * 创建租户代理 + * + * @param tenantAgent 租户代理人 + * @return int + */ + int createTenantAgent(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/ITenantPlatformService.java b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java new file mode 100644 index 0000000..786cbc7 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/ITenantPlatformService.java @@ -0,0 +1,78 @@ +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 {@link TenantPlatform } + */ + TenantPlatform findTenantPlatform(TenantPlatform tenantPlatform); + + + /** + * 查询租户成本管理列表 + * + * @param tenantPlatform 租户成本管理 + * @return 租户成本管理集合 + */ + List selectTenantPlatformList(TenantPlatform tenantPlatform); + + /** + * 按租户id选择货币代码 + * + * @param tenantId 租户id + * @return {@link List }<{@link String }> + */ + List selectCurrencyCodeByTenantId(Long tenantId); + + /** + * 新增租户成本管理 + * + * @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/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/TenantAgentServiceImpl.java b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java new file mode 100644 index 0000000..c376ed7 --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantAgentServiceImpl.java @@ -0,0 +1,184 @@ +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业务层处理 + * + * @author shi + * @date 2025-02-25 + */ +@Service +public class TenantAgentServiceImpl implements ITenantAgentService { + @Autowired + private TenantAgentMapper tenantAgentMapper; + + + @Resource + private AuthenticationManager authenticationManager; + + @Resource + private TokenService tokenService; + + + /** + * 查询代理 + * + * @param id 代理主键 + * @return 代理 + */ + @Override + 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); + } + + /** + * 查询代理列表 + * + * @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 int + */ + @Override + public synchronized int createTenantAgent(TenantAgent tenantAgent) { + TenantAgent tenantAgentByAccount = this.selectTenantAgentByAccount(tenantAgent.getAccount()); + if (!ObjectUtils.isEmpty(tenantAgentByAccount)) { + return 0; + } + + return this.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-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..0e3f11f --- /dev/null +++ b/ff-base/src/main/java/com/ff/base/system/service/impl/TenantPlatformServiceImpl.java @@ -0,0 +1,122 @@ +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; +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 {@link TenantPlatform } + */ + @Override + public TenantPlatform findTenantPlatform(TenantPlatform tenantPlatform) { + return tenantPlatformMapper.findTenantPlatform(tenantPlatform); + } + + /** + * 查询租户成本管理列表 + * + * @param tenantPlatform 租户成本管理 + * @return 租户成本管理 + */ + @Override + public List selectTenantPlatformList(TenantPlatform tenantPlatform) + { + return tenantPlatformMapper.selectTenantPlatformList(tenantPlatform); + } + + /** + * 按租户id选择货币代码 + * + * @param tenantId 租户id + * @return {@link List }<{@link String }> + */ + @Override + public List selectCurrencyCodeByTenantId(Long tenantId) { + return tenantPlatformMapper.selectCurrencyCodeByTenantId(tenantId); + } + + /** + * 新增租户成本管理 + * + * @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/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/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 new file mode 100644 index 0000000..b7ca06d --- /dev/null +++ b/ff-base/src/main/resources/mapper/system/TenantAgentMapper.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + insert into ff_tenant_agent + + account, + password, + register_time, + register_ip, + register_ip_city, + login_ip, + login_data, + tenant_status, + create_by, + create_time, + update_by, + update_time, + currency_agreement, + wallet_address, + + + #{account}, + #{password}, + #{registerTime}, + #{registerIp}, + #{registerIpCity}, + #{loginIp}, + #{loginData}, + #{tenantStatus}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{currencyAgreement}, + #{walletAddress}, + + + + + update ff_tenant_agent + + account = #{account}, + password = #{password}, + 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}, + update_time = #{updateTime}, + currency_agreement = #{currencyAgreement}, + wallet_address = #{walletAddress}, + + where id = #{id} + + + + delete from ff_tenant_agent where id = #{id} + + + + delete from ff_tenant_agent where id in + + #{id} + + + \ No newline at end of file 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..740541a --- /dev/null +++ b/ff-base/src/main/resources/mapper/system/TenantPlatformMapper.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + 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/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-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-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..2730bf6 --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/controller/TenantAgentCommissionController.java @@ -0,0 +1,150 @@ +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.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; +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 AjaxResult list(TenantAgentCommission tenantAgentCommission) { + startPage(); + tenantAgentCommission.setAgentId(getUserId()); + List list = tenantAgentCommissionService.selectTenantAgentCommissionList(tenantAgentCommission); + + //未提现佣金 + 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; + } + + + + /** + * 获取代理佣金管理 详细信息 + */ + @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 68% 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 bc5f6d7..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,7 +1,8 @@ -package com.ff.agent.request; +package com.ff.agent.dto; import com.ff.base.xss.Xss; +import com.ff.common.domain.TenantAgentPlatform; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -9,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; /** * 代理创建租户 @@ -17,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; @@ -34,12 +36,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 枚举 */ @@ -52,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..e0daaac --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/mapper/TenantAgentCommissionMapper.java @@ -0,0 +1,72 @@ +package com.ff.agent.mapper; + +import java.math.BigDecimal; +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); + + + /** + * 获得代理佣金 + * + * @param tenantAgentCommission 租户代理佣金 + * @return {@link BigDecimal } + */ + BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission); + +} 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..ce5277a --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/ITenantAgentCommissionService.java @@ -0,0 +1,71 @@ +package com.ff.agent.service; + +import java.math.BigDecimal; +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 {@link BigDecimal } + */ + BigDecimal getAgentCommissionSum(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..4e0471c --- /dev/null +++ b/ff-game/src/main/java/com/ff/agent/service/impl/TenantAgentCommissionServiceImpl.java @@ -0,0 +1,111 @@ +package com.ff.agent.service.impl; + +import java.math.BigDecimal; +import java.util.List; + +import cn.hutool.core.util.IdUtil; +import com.ff.base.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +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 {@link BigDecimal } + */ + @Override + public BigDecimal getAgentCommissionSum(TenantAgentCommission tenantAgentCommission) { + return tenantAgentCommissionMapper.getAgentCommissionSum(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 76% rename from ff-admin/src/main/java/com/ff/annotation/HeaderCheckAspect.java rename to ff-game/src/main/java/com/ff/annotation/HeaderCheckAspect.java index b6f05d6..595be47 100644 --- a/ff-admin/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; @@ -59,10 +68,16 @@ public class HeaderCheckAspect { TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyByTenantKey(key); - Assert.notNull(tenantSecretKey, "key不存在"); + Assert.notNull(tenantSecretKey, key+"key不存在"); Assert.isTrue(tenantSecretKey.getTenantStatus(), "当前租户已停用"); + List tenantWhites = tenantWhiteService.selectTenantWhiteList(TenantWhite.builder() + .tenantId(tenantSecretKey.getId()) + .whiteIp(IpUtils.getIpAddr()) + .build()); + Assert.isTrue(!tenantWhites.isEmpty(), "当前"+IpUtils.getIpAddr()+"不在白名单内"); + String keyG = Md5Utils.md5New(random + key + tenantSecretKey.getTenantSecret()); Assert.isTrue(keyG.equals(sign), "签名错误"); //保存 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 89% 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 1883275..4b740d6 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 @@ -10,6 +10,8 @@ import cn.hutool.core.util.NumberUtil; import com.ff.base.constant.Constants; import com.ff.base.enums.*; import com.ff.base.exception.base.ApiException; +import com.ff.base.system.domain.TenantPlatform; +import com.ff.base.system.service.ITenantPlatformService; import com.ff.base.utils.DateUtils; import com.ff.base.utils.QuotaUtils; import com.ff.base.utils.StringUtils; @@ -28,6 +30,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; @@ -72,6 +75,8 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { @Resource private ITenantQuotaExchangeService tenantQuotaExchangeService; + @Resource + private ITenantPlatformService tenantPlatformService; /** * 查询租户游戏配额 @@ -104,7 +109,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); } @@ -195,6 +200,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()) @@ -221,7 +227,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(); //如果有汇率 则需要计算真实扣除额度 @@ -283,9 +289,20 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { TenantQuotaExchange tenantQuotaExchange = tenantQuotaExchangeService.getTenantQuotaExchange(Constants.USDT, gameBalanceExchange.getCurrencyCode()); ApiException.notNull(tenantQuotaExchange, ErrorCode.CURRENCY_EXCHANGE.getCode()); - // 获取租户信息 TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyByTenantKey(gameBalanceExchange.getTenantKey()); + + + // 获取平台币种格外成本 + TenantPlatform tenantPlatform = tenantPlatformService.findTenantPlatform(TenantPlatform.builder() + .tenantId(tenantSecretKey.getId()) + .currencyCode(gameBalanceExchange.getCurrencyCode()) + .platformCode(gameBalanceExchange.getPlatformCode()) + .build()); + // 检查获取平台币种格外成本是否存在,否则抛出异常 + ApiException.notNull(tenantPlatform, ErrorCode.PLATFORM_NOT_EXIST.getCode()); + + // 获取用户信息 Member member = memberService.selectMemberByGameAccount(StringUtils.addSuffix(gameBalanceExchange.getAccount(), gameBalanceExchange.getCurrencyCode() + tenantSecretKey.getTenantSn())); // 检查用户是否存在,否则抛出异常 @@ -315,6 +332,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .agentKey(gameSecretKey.getKey()) .build(); balanceRequestAmount = iGamesService.getMemberInfo(gamesBaseRequestDTO).getBalance(); + balanceRequestAmount = NumberUtil.add(balanceRequestAmount, NumberUtil.mul(balanceRequestAmount, NumberUtil.div(tenantPlatform.getUseCost(), Constants.HUNDRED))); // 计算累计转入和转出金额 BigDecimal balanceInto = tenantGameQuotaFlowService.getExchangeMoneyByMemberId(TenantGameQuotaFlow.builder() @@ -328,7 +346,7 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .quotaType(quotaType) .tenantKey(gameBalanceExchange.getTenantKey()) .memberId(member.getId()) - .build()),BigDecimal.ZERO); + .build()), BigDecimal.ZERO); // 初始化平台额度 BigDecimal platformBalance = BigDecimal.ZERO; @@ -347,6 +365,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()) @@ -356,7 +375,8 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { // 进行租户余额调整 this.balanceChanges(BalanceChangesDTO.builder() - .isOut(isOut) + .isOut(Boolean.TRUE) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .actualBalance(tenantQuotaExchange.getActualBalance()) @@ -369,20 +389,26 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .build()); } else { + // 如果是扣账操作,首先处理假额度 String falseTenantQuotaType = QuotaUtils.getFalseTenantQuota(gameBalanceExchange.getPlatformCode(), gameBalanceExchange.getCurrencyCode()); TenantGameQuota falseTenantQuota = selectTenantGameQuotaByTenantKey(tenantSecretKey.getTenantKey(), falseTenantQuotaType); + balanceRequestAmount = NumberUtil.add(gameBalanceExchange.getAmount(), NumberUtil.mul(gameBalanceExchange.getAmount(), NumberUtil.div(tenantPlatform.getUseCost(), Constants.HUNDRED))); if (falseTenantQuota.getBalance().compareTo(BigDecimal.ZERO) > 0) { - BigDecimal amountToDeduct = gameBalanceExchange.getAmount(); + + + + BigDecimal falseQuotaBalance = falseTenantQuota.getBalance(); - if (falseQuotaBalance.compareTo(amountToDeduct) >= 0) { + if (falseQuotaBalance.compareTo(balanceRequestAmount) >= 0) { // 假额度足够扣除本次所需金额 this.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.FALSE) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .tenantKey(tenantSecretKey.getTenantKey()) - .balance(amountToDeduct) + .balance(balanceRequestAmount) .memberId(member.getId()) .operationType(OperationType.API_BALANCE.getCode()) .quotaType(falseTenantQuotaType) @@ -391,9 +417,10 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { balanceRequestAmount = BigDecimal.ZERO; } else { // 假额度不足以扣除本次所需金额,扣除全部假额度 - balanceRequestAmount = amountToDeduct.subtract(falseQuotaBalance); + balanceRequestAmount = balanceRequestAmount.subtract(falseQuotaBalance); this.balanceChanges(BalanceChangesDTO.builder() .isOut(Boolean.FALSE) + .sourceId(gameBalanceExchange.getSourceId()) .platformCode(gameBalanceExchange.getPlatformCode()) .currencyCode(gameBalanceExchange.getCurrencyCode()) .tenantKey(tenantSecretKey.getTenantKey()) @@ -409,6 +436,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()) @@ -421,7 +449,9 @@ public class TenantGameQuotaServiceImpl implements ITenantGameQuotaService { .build()); } } - return balanceRequestAmount; + + TenantGameQuota tenantGameQuota = this.selectTenantGameQuotaByTenantKey(gameBalanceExchange.getTenantKey(), QuotaType.BALANCE.getCode()); + return tenantGameQuota.getBalance(); } @@ -440,6 +470,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/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 92% 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 index 7d363c7..a19d19e 100644 --- a/ff-admin/src/main/java/com/ff/quartz/task/TenantQuotaTask.java +++ b/ff-game/src/main/java/com/ff/quartz/task/TenantQuotaTask.java @@ -1,9 +1,13 @@ package com.ff.quartz.task; +import cn.hutool.core.util.NumberUtil; import com.ff.base.constant.Constants; import com.ff.base.enums.OperationType; import com.ff.base.enums.QuotaType; +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.utils.DateUtils; import com.ff.common.domain.TenantGameQuotaFlow; import com.ff.common.domain.TenantQuotaExchange; @@ -42,6 +46,9 @@ public class TenantQuotaTask { @Resource private ITenantQuotaExchangeService tenantQuotaExchangeService; + @Resource + private ITenantPlatformService tenantPlatformService; + /** * 更新租户实际配额 */ @@ -64,6 +71,7 @@ public class TenantQuotaTask { balance = balance.abs(); isOut = Boolean.FALSE; } + TenantQuotaExchange tenantQuotaExchange = tenantQuotaExchangeService.getTenantQuotaExchange(Constants.USDT, tenantGameQuotaFlow.getCurrencyCode()); //更新额度 BalanceRealChangesDTO realChangesDTO = BalanceRealChangesDTO.builder() 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-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/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/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/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/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/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/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/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/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/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-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..41064d0 --- /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(getUsername()); + 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..9df1415 --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantController.java @@ -0,0 +1,66 @@ +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 } + */ + @GetMapping + public AjaxResult getInfo() { + TenantSecretKey tenantSecretKey = tenantSecretKeyService.selectTenantSecretKeyById(getUserId()); + TenantDTO tenantDTO = TenantDTO.builder() + .tenantSecretKey(tenantSecretKey) + .tenantGameQuotaList(tenantGameQuotaService.selectTenantGameQuotaList(TenantGameQuota.builder() + .tenantKey(tenantSecretKey.getTenantKey()) + .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/TenantExchangeController.java b/ff-game/src/main/java/com/ff/tenant/controller/TenantExchangeController.java new file mode 100644 index 0000000..c1f4dd3 --- /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(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 new file mode 100644 index 0000000..2812be4 --- /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(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 new file mode 100644 index 0000000..55948ac --- /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(getUsername()); + startPage(); + List tenantGameQuotaFlows = tenantGameQuotaFlowService.selectTenantGameQuotaFlowList(tenantGameQuotaFlow); + return getDataTable(tenantGameQuotaFlows); + } + +} 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..58aa1de --- /dev/null +++ b/ff-game/src/main/java/com/ff/tenant/controller/TenantWhiteController.java @@ -0,0 +1,71 @@ +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; + + /** + * 查询租户白名单列表 + */ + @GetMapping("/list") + public TableDataInfo list(TenantWhite tenantWhite) + { + startPage(); + tenantWhite.setTenantId(getUserId()); + List list = tenantWhiteService.selectTenantWhiteList(tenantWhite); + return getDataTable(list); + } + + + /** + * 新增租户白名单 + */ + @Log(title = "租户白名单", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TenantWhite tenantWhite) + { + tenantWhite.setTenantId(getUserId()); + tenantWhite.setCreateBy(getUsername()); + return toAjax(tenantWhiteService.insertTenantWhite(tenantWhite)); + } + + /** + * 删除租户白名单 + */ + @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/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..120310b --- /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 currencyCodes; +} 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 95% rename from ff-admin/src/main/resources/application-prod.yml rename to ff-game/src/main/resources/application-prod.yml index 473dd2e..9771e12 100644 --- a/ff-admin/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 # 最小连接池数量 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..69f363a --- /dev/null +++ b/ff-game/src/main/resources/mapper/agent/TenantAgentCommissionMapper.xml @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 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..398b666 --- /dev/null +++ b/ff-game/src/main/resources/mapper/common/TenantGameQuotaFlowMapper.xml @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 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-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml b/ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml new file mode 100644 index 0000000..d08a88a --- /dev/null +++ b/ff-game/src/main/resources/mapper/common/TenantGameQuotaMapper.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + select id, + tenant_key, + balance, + quota_type, + version, + create_by, + create_time, + update_by, + update_time + from ff_tenant_game_quota + + + + + + + + + + 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}, + + + + + + 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}, + + + where id = #{id} + + + + delete + from ff_tenant_game_quota + where id = #{id} + + + + delete from ff_tenant_game_quota where id in + + #{id} + + + \ No newline at end of file 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 98% rename from ff-admin/src/main/resources/mapper/game/GameBettingDetailsMapper.xml rename to ff-game/src/main/resources/mapper/game/GameBettingDetailsMapper.xml index 82d2803..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} @@ -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-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-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 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 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 ae7cafb..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 @@ -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; @@ -177,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) { @@ -185,6 +187,7 @@ public class GenTableServiceImpl implements IGenTableService for (GenTableColumn column : genTableColumns) { GenUtils.initColumnField(column, table); + column.setColumnId(IdUtil.getSnowflakeNextId()); genTableColumnMapper.insertGenTableColumn(column); } } @@ -331,6 +334,7 @@ public class GenTableServiceImpl implements IGenTableService } else { + 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/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}, 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 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 + # 删除目标目录下的所有文件和子目录 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"