This commit is contained in:
2023-07-14 11:17:53 +08:00
parent b1b4bc7978
commit cda84d8600
6 changed files with 141 additions and 49 deletions

View File

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.qiaoba.api.job.annotation.Log;
import com.qiaoba.api.job.enums.BusinessType;
import com.qiaoba.api.tenant.entity.SysTenant;
import com.qiaoba.api.tenant.entity.dto.SysTenantDto;
import com.qiaoba.api.tenant.entity.param.SysTenantParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
@ -38,8 +39,8 @@ public class SysTenantController {
@PostMapping
@Operation(summary = "新增租户")
@Log(title = "新增租户", businessType = BusinessType.INSERT)
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysTenant sysTenant) {
return AjaxResult.toAjax(sysTenantService.insert(sysTenant));
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysTenantDto dto) {
return AjaxResult.toAjax(sysTenantService.insert(dto));
}
@PreAuthorize("hasAuthority('tenant:query')")
@ -53,8 +54,8 @@ public class SysTenantController {
@PutMapping
@Operation(summary = "修改租户")
@Log(title = "修改租户", businessType = BusinessType.UPDATE)
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysTenant sysTenant) {
return AjaxResult.toAjax(sysTenantService.update(sysTenant));
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysTenantDto dto) {
return AjaxResult.toAjax(sysTenantService.update(dto));
}
@PreAuthorize("hasAuthority('tenant:list')")
@ -71,10 +72,10 @@ public class SysTenantController {
}
@PreAuthorize("hasAuthority('tenant:edit')")
@PutMapping("/setting")
@PutMapping("/update-mode")
@Operation(summary = "修改模式")
public AjaxResult setting(TenantSettingDto dto) {
return AjaxResult.success(sysTenantService.update(BeanUtil.copyProperties(dto, SysTenant.class)));
public AjaxResult updateMode(TenantSettingDto dto) {
return AjaxResult.toAjax(sysTenantService.updateMode(dto));
}
@PreAuthorize("hasAuthority('tenant:remove')")

View File

@ -1,9 +1,11 @@
package com.qiaoba.module.tenant.service;
import com.qiaoba.api.tenant.entity.SysTenant;
import com.qiaoba.api.tenant.entity.dto.SysTenantDto;
import com.qiaoba.api.tenant.entity.param.SysTenantParam;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.module.tenant.entity.dto.TenantSettingDto;
/**
* 租户管理 服务层
@ -17,18 +19,18 @@ public interface SysTenantService {
/**
* 新增租户
*
* @param sysTenant 租户信息
* @param dto 租户信息
* @return 结果
*/
int insert(SysTenant sysTenant);
int insert(SysTenantDto dto);
/**
* 修改租户
*
* @param sysTenant 租户信息
* @param dto 租户信息
* @return 结果
*/
int update(SysTenant sysTenant);
int update(SysTenantDto dto);
/**
* 获取租户列表
@ -76,4 +78,19 @@ public interface SysTenantService {
* 更新缓存
*/
void resetCache();
/**
* 修改模式
*
* @param dto dto
* @return 结果
*/
int updateMode(TenantSettingDto dto);
/**
* 完成初始化
*
* @param tenantId 租户ID
*/
int initCompleted(String tenantId);
}

View File

@ -9,6 +9,7 @@ import com.qiaoba.api.tenant.entity.SysTenantDatasource;
import com.qiaoba.api.tenant.enums.TenantModeEnum;
import com.qiaoba.common.base.code.DatasourceErrorCode;
import com.qiaoba.common.base.code.TenantErrorCode;
import com.qiaoba.common.base.constant.BaseConstant;
import com.qiaoba.common.base.enums.BaseEnum;
import com.qiaoba.common.base.enums.DataBaseEnum;
import com.qiaoba.common.base.exception.ServiceException;
@ -161,10 +162,10 @@ public class SysTenantInitServiceImpl implements SysTenantInitService {
@Override
public void initCompleted(String tenantId) {
SysTenant sysTenant = new SysTenant();
sysTenant.setTenantId(tenantId);
sysTenant.setInitialized(BaseEnum.YES.getCode());
sysTenantService.update(sysTenant);
int result = sysTenantService.initCompleted(tenantId);
if (result > BaseConstant.HANDLE_ERROR) {
// 缓存相关 todo
}
}
private void checkInitialized(SysTenant sysTenant) {

View File

@ -1,8 +1,11 @@
package com.qiaoba.module.tenant.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qiaoba.api.tenant.entity.SysTenant;
import com.qiaoba.api.tenant.entity.dto.SysTenantDto;
import com.qiaoba.api.tenant.entity.param.SysTenantParam;
import com.qiaoba.api.tenant.service.SysTenantApiService;
import com.qiaoba.api.auth.utils.SecurityUtil;
@ -15,6 +18,7 @@ import com.qiaoba.common.base.exception.ServiceException;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.redis.service.RedisService;
import com.qiaoba.module.tenant.entity.dto.TenantSettingDto;
import com.qiaoba.module.tenant.mapper.SysTenantMapper;
import com.qiaoba.module.tenant.service.SysTenantService;
import lombok.RequiredArgsConstructor;
@ -42,7 +46,8 @@ public class SysTenantServiceImpl implements SysTenantService, SysTenantApiServi
private final RedisService redisService;
@Override
public int insert(SysTenant sysTenant) {
public int insert(SysTenantDto dto) {
SysTenant sysTenant = BeanUtil.copyProperties(dto, SysTenant.class);
checkCompanyNameIsExist(sysTenant);
sysTenant.setCreateTime(new Date());
sysTenant.setCreateUser(SecurityUtil.getLoginUsername());
@ -56,13 +61,21 @@ public class SysTenantServiceImpl implements SysTenantService, SysTenantApiServi
}
@Override
public int update(SysTenant sysTenant) {
public int update(SysTenantDto dto) {
SysTenant oldTenant = selectById(dto.getTenantId());
if (BaseEnum.ABNORMAL.getCode().equals(oldTenant.getStatus())) {
throw new ServiceException(TenantErrorCode.DISABLE.getCode(), TenantErrorCode.DISABLE.getMsg());
}
SysTenant sysTenant = BeanUtil.copyProperties(dto, SysTenant.class);
checkCompanyNameIsExist(sysTenant);
if (DateUtil.compare(sysTenant.getExpireTime(), new Date()) > 0) {
sysTenant.setStatus(BaseEnum.NORMAL.getCode());
}
sysTenant.setUpdateTime(new Date());
sysTenant.setUpdateUser(SecurityUtil.getLoginUsername());
int result = sysTenantMapper.updateById(sysTenant);
if (result > BaseConstant.HANDLE_ERROR) {
toCache(sysTenant);
toCache(selectById(sysTenant.getTenantId()));
}
return result;
}
@ -111,6 +124,28 @@ public class SysTenantServiceImpl implements SysTenantService, SysTenantApiServi
}
}
@Override
public int updateMode(TenantSettingDto dto) {
SysTenant sysTenant = BeanUtil.copyProperties(dto, SysTenant.class);
int result = sysTenantMapper.updateById(sysTenant);
if (result > BaseConstant.HANDLE_ERROR) {
toCache(selectById(sysTenant.getTenantId()));
}
return result;
}
@Override
public int initCompleted(String tenantId) {
SysTenant sysTenant = new SysTenant();
sysTenant.setTenantId(tenantId);
sysTenant.setInitialized(BaseEnum.YES.getCode());
int result = sysTenantMapper.updateById(sysTenant);
if (result > BaseConstant.HANDLE_ERROR) {
toCache(selectById(sysTenant.getTenantId()));
}
return result;
}
private QueryWrapper<SysTenant> param2Wrapper(SysTenantParam param) {
QueryWrapper<SysTenant> wrapper = new QueryWrapper<>();
wrapper.lambda()