game-api/ff-admin/src/main/java/com/ff/agent/contoller/AgentController.java

125 lines
4.3 KiB
Java
Raw Normal View History

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<TenantSecretKey> tenantSecretKeys = tenantSecretKeyService.selectTenantSecretKeyDTOList(tenantSecretKeyDTO);
TableDataInfo dataTable = getDataTable(tenantSecretKeys);
List<AgentTenantSecretKeyDTO> list=new ArrayList<>();
for (TenantSecretKey row : (List<TenantSecretKey>) 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);
}
}