fix(): 修复查询多租户
parent
a507bb3e73
commit
518900891d
|
@ -3,6 +3,9 @@ package com.muyu.config;
|
|||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
||||
import com.muyu.config.tenant.CustomTenantHandler;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
|
@ -12,6 +15,9 @@ import org.springframework.context.annotation.Configuration;
|
|||
@Configuration
|
||||
public class MybatisPlusConfig {
|
||||
|
||||
@Autowired
|
||||
private CustomTenantHandler customTenantHandler;
|
||||
|
||||
/**
|
||||
* 新的分页插件,一缓和二缓遵循mybatis的规则,
|
||||
*/
|
||||
|
@ -19,6 +25,9 @@ public class MybatisPlusConfig {
|
|||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
||||
TenantLineInnerInterceptor tenantInterceptor = new TenantLineInnerInterceptor();
|
||||
tenantInterceptor.setTenantLineHandler(customTenantHandler);
|
||||
interceptor.addInnerInterceptor(tenantInterceptor);
|
||||
return interceptor;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.muyu.vehicle.core;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.muyu.config.tenant.CustomTenantHandler;
|
||||
import com.muyu.web.common.pool.FixedThreadPool;
|
||||
import com.muyu.web.common.pool.ScheduledThreadPool;
|
||||
import com.muyu.web.domain.VehicleInfo;
|
||||
|
@ -31,6 +32,8 @@ public class VehicleConfiguration implements ApplicationRunner {
|
|||
|
||||
private final VehicleInstanceService vehicleInstanceService;
|
||||
|
||||
private final CustomTenantHandler customTenantHandler;
|
||||
|
||||
/**
|
||||
* 初始化加载汽车数据到内存当中
|
||||
*/
|
||||
|
@ -38,6 +41,7 @@ public class VehicleConfiguration implements ApplicationRunner {
|
|||
long startTime = System.currentTimeMillis();
|
||||
int page = 0, pageSize = 10;
|
||||
log.info("初始开始,批量从数据库当中加载数据到内存当中,每次[{}]条", pageSize);
|
||||
customTenantHandler.ignore();
|
||||
while (true){
|
||||
Page<VehicleInfo> vehiclePage = vehicleInfoService.page(new Page<>(page++, pageSize));
|
||||
List<VehicleInfo> vehicleInfoList = vehiclePage.getRecords();
|
||||
|
@ -47,6 +51,7 @@ public class VehicleConfiguration implements ApplicationRunner {
|
|||
break;
|
||||
}
|
||||
}
|
||||
customTenantHandler.remove();
|
||||
log.info("数据加载完成,耗时:{} MS", System.currentTimeMillis() - startTime);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,9 +32,12 @@ public class VehicleController {
|
|||
* @param sum 车辆总数
|
||||
* @return 结果集
|
||||
*/
|
||||
@GetMapping("/gen/{sum}")
|
||||
public Result<String> generate(@PathVariable(value = "sum") Integer sum){
|
||||
vehicleInfoService.generate(sum);
|
||||
@GetMapping("/gen/{sum}/{messageTemplateId}")
|
||||
public Result<String> generate(
|
||||
@PathVariable(value = "sum") Integer sum,
|
||||
@PathVariable("messageTemplateId") Long messageTemplateId
|
||||
){
|
||||
vehicleInfoService.generate(sum, messageTemplateId);
|
||||
return Result.success();
|
||||
}
|
||||
/**
|
||||
|
@ -44,7 +47,7 @@ public class VehicleController {
|
|||
*/
|
||||
@PostMapping("/create")
|
||||
public Result<String> create(@RequestBody VehicleCreateAddReq vehicleCreateAddReq){
|
||||
vehicleInfoService.create(vehicleCreateAddReq.getVinStr());
|
||||
vehicleInfoService.create(vehicleCreateAddReq.getVinStr(), vehicleCreateAddReq.getMessageTemplateId());
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author DongZeLiang
|
||||
|
@ -44,6 +45,12 @@ public class VehicleInfo {
|
|||
@TableField(value = "tenant_id", fill = FieldFill.INSERT)
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 报文模板
|
||||
*/
|
||||
@TableField("message_template_id")
|
||||
private Long messageTemplateId;
|
||||
|
||||
/**
|
||||
* 电池剩余电量
|
||||
*/
|
||||
|
@ -70,20 +77,22 @@ public class VehicleInfo {
|
|||
|
||||
/**
|
||||
* 生成车辆数据
|
||||
* @param messageTemplateId 报文ID
|
||||
* @return 车辆数据
|
||||
*/
|
||||
public static VehicleInfo gen() {
|
||||
return VehicleInfo.create(VehicleUtils.genVin());
|
||||
public static VehicleInfo gen(Supplier<Long> messageTemplateId) {
|
||||
return VehicleInfo.create(VehicleUtils.genVin(), messageTemplateId);
|
||||
|
||||
}
|
||||
/**
|
||||
* 生成车辆数据
|
||||
* @return 车辆数据
|
||||
*/
|
||||
public static VehicleInfo create(String vin) {
|
||||
public static VehicleInfo create(String vin, Supplier<Long> messageTemplateId) {
|
||||
BigDecimal battery = VehicleUtils.genBattery();
|
||||
return VehicleInfo.builder()
|
||||
.vin(vin)
|
||||
.messageTemplateId(messageTemplateId.get())
|
||||
.createTime(new Date())
|
||||
.batteryLevel(battery)
|
||||
.remainingBattery(battery)
|
||||
|
|
|
@ -20,4 +20,9 @@ public class VehicleCreateAddReq {
|
|||
* 车辆添加VIN
|
||||
*/
|
||||
private String vinStr;
|
||||
|
||||
/**
|
||||
* 报文模板
|
||||
*/
|
||||
private Long messageTemplateId;
|
||||
}
|
||||
|
|
|
@ -15,15 +15,19 @@ public interface VehicleInfoService extends IService<VehicleInfo> {
|
|||
|
||||
/**
|
||||
* 根据数量生成测试车辆
|
||||
*
|
||||
* @param sum 数量
|
||||
* @param messageTemplateId
|
||||
*/
|
||||
void generate(Integer sum);
|
||||
void generate(Integer sum, Long messageTemplateId);
|
||||
|
||||
/**
|
||||
* 创建IVN
|
||||
*
|
||||
* @param vinStr VIN
|
||||
* @param messageTemplateId
|
||||
*/
|
||||
void create (String vinStr);
|
||||
void create (String vinStr, Long messageTemplateId);
|
||||
|
||||
/**
|
||||
* 同步数据库
|
||||
|
|
|
@ -65,7 +65,9 @@ public class SystemAuthServiceImpl implements SystemAuthService {
|
|||
UserInfo userInfo = userInfoList.get(0);
|
||||
LambdaQueryWrapper<ServerConfig> serverConfigQueryWrapper = new LambdaQueryWrapper<>();
|
||||
serverConfigQueryWrapper.eq(ServerConfig::getTenantId, userInfo.getTenantId());
|
||||
customTenantHandler.ignore();
|
||||
ServerConfig serverConfig = serverConfigService.getOne(serverConfigQueryWrapper);
|
||||
customTenantHandler.remove();
|
||||
LoginUserInfo loginUserInfo = LoginUserInfo.builder()
|
||||
.id(userInfo.getId())
|
||||
.tenantId(userInfo.getTenantId())
|
||||
|
|
|
@ -41,11 +41,15 @@ public class VechileInfoServiceImpl extends ServiceImpl<VehicleInfoMapper, Vehic
|
|||
* 根据数量生成测试车辆
|
||||
*
|
||||
* @param sum 数量
|
||||
* @param messageTemplateId
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void generate (Integer sum) {
|
||||
List<VehicleInfo> vehicleInfoList = Stream.generate(VehicleInfo::gen).limit(sum).toList();
|
||||
public void generate (Integer sum, Long messageTemplateId) {
|
||||
List<VehicleInfo> vehicleInfoList =
|
||||
Stream.generate(() -> VehicleInfo.gen(() -> messageTemplateId))
|
||||
.limit(sum)
|
||||
.toList();
|
||||
this.saveBatch(vehicleInfoList);
|
||||
vehicleInfoList.forEach(vehicleInstanceService::init);
|
||||
}
|
||||
|
@ -54,10 +58,11 @@ public class VechileInfoServiceImpl extends ServiceImpl<VehicleInfoMapper, Vehic
|
|||
* 创建IVN
|
||||
*
|
||||
* @param vinStr VIN
|
||||
* @param messageTemplateId 报文模板
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void create (String vinStr) {
|
||||
public void create (String vinStr, Long messageTemplateId) {
|
||||
String[] vinList = vinStr.split("\n");
|
||||
StringBuilder errorMsg = new StringBuilder();
|
||||
for (String vin : vinList) {
|
||||
|
@ -76,7 +81,9 @@ public class VechileInfoServiceImpl extends ServiceImpl<VehicleInfoMapper, Vehic
|
|||
if (!errorMsg.isEmpty()) {
|
||||
throw new RuntimeException(errorMsg.toString());
|
||||
}
|
||||
List<VehicleInfo> vehicleInfoList = Arrays.stream(vinList).map(VehicleInfo::create).toList();
|
||||
List<VehicleInfo> vehicleInfoList = Arrays.stream(vinList)
|
||||
.map((String vin) -> VehicleInfo.create(vin, () -> messageTemplateId))
|
||||
.toList();
|
||||
this.saveBatch(vehicleInfoList);
|
||||
vehicleInfoList.forEach(vehicleInstanceService::init);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
server:
|
||||
port: 81
|
||||
port: 9865
|
||||
spring:
|
||||
main:
|
||||
allow-circular-references: true
|
||||
|
|
Loading…
Reference in New Issue