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); } }