From 518900891d0f17a8a2ec78fe65a9e757e97669d1 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Sat, 21 Sep 2024 09:10:57 +0800 Subject: [PATCH] =?UTF-8?q?fix():=20=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/config/MybatisPlusConfig.java | 9 +++++++++ .../vehicle/core/VehicleConfiguration.java | 5 +++++ .../web/controller/VehicleController.java | 11 +++++++---- .../java/com/muyu/web/domain/VehicleInfo.java | 15 ++++++++++++--- .../web/domain/req/VehicleCreateAddReq.java | 5 +++++ .../muyu/web/service/VehicleInfoService.java | 12 ++++++++---- .../service/impl/SystemAuthServiceImpl.java | 2 ++ .../service/impl/VechileInfoServiceImpl.java | 19 +++++++++++++------ src/main/resources/application.yml | 2 +- 9 files changed, 62 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/muyu/config/MybatisPlusConfig.java b/src/main/java/com/muyu/config/MybatisPlusConfig.java index 52cb59e..6e8bf1b 100644 --- a/src/main/java/com/muyu/config/MybatisPlusConfig.java +++ b/src/main/java/com/muyu/config/MybatisPlusConfig.java @@ -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; } } diff --git a/src/main/java/com/muyu/vehicle/core/VehicleConfiguration.java b/src/main/java/com/muyu/vehicle/core/VehicleConfiguration.java index 3245b50..b52f44a 100644 --- a/src/main/java/com/muyu/vehicle/core/VehicleConfiguration.java +++ b/src/main/java/com/muyu/vehicle/core/VehicleConfiguration.java @@ -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 vehiclePage = vehicleInfoService.page(new Page<>(page++, pageSize)); List vehicleInfoList = vehiclePage.getRecords(); @@ -47,6 +51,7 @@ public class VehicleConfiguration implements ApplicationRunner { break; } } + customTenantHandler.remove(); log.info("数据加载完成,耗时:{} MS", System.currentTimeMillis() - startTime); } diff --git a/src/main/java/com/muyu/web/controller/VehicleController.java b/src/main/java/com/muyu/web/controller/VehicleController.java index 85dc9e4..23a22ca 100644 --- a/src/main/java/com/muyu/web/controller/VehicleController.java +++ b/src/main/java/com/muyu/web/controller/VehicleController.java @@ -32,9 +32,12 @@ public class VehicleController { * @param sum 车辆总数 * @return 结果集 */ - @GetMapping("/gen/{sum}") - public Result generate(@PathVariable(value = "sum") Integer sum){ - vehicleInfoService.generate(sum); + @GetMapping("/gen/{sum}/{messageTemplateId}") + public Result 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 create(@RequestBody VehicleCreateAddReq vehicleCreateAddReq){ - vehicleInfoService.create(vehicleCreateAddReq.getVinStr()); + vehicleInfoService.create(vehicleCreateAddReq.getVinStr(), vehicleCreateAddReq.getMessageTemplateId()); return Result.success(); } diff --git a/src/main/java/com/muyu/web/domain/VehicleInfo.java b/src/main/java/com/muyu/web/domain/VehicleInfo.java index 9a7639b..b17860b 100644 --- a/src/main/java/com/muyu/web/domain/VehicleInfo.java +++ b/src/main/java/com/muyu/web/domain/VehicleInfo.java @@ -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 messageTemplateId) { + return VehicleInfo.create(VehicleUtils.genVin(), messageTemplateId); } /** * 生成车辆数据 * @return 车辆数据 */ - public static VehicleInfo create(String vin) { + public static VehicleInfo create(String vin, Supplier messageTemplateId) { BigDecimal battery = VehicleUtils.genBattery(); return VehicleInfo.builder() .vin(vin) + .messageTemplateId(messageTemplateId.get()) .createTime(new Date()) .batteryLevel(battery) .remainingBattery(battery) diff --git a/src/main/java/com/muyu/web/domain/req/VehicleCreateAddReq.java b/src/main/java/com/muyu/web/domain/req/VehicleCreateAddReq.java index 90dbc01..03759bf 100644 --- a/src/main/java/com/muyu/web/domain/req/VehicleCreateAddReq.java +++ b/src/main/java/com/muyu/web/domain/req/VehicleCreateAddReq.java @@ -20,4 +20,9 @@ public class VehicleCreateAddReq { * 车辆添加VIN */ private String vinStr; + + /** + * 报文模板 + */ + private Long messageTemplateId; } diff --git a/src/main/java/com/muyu/web/service/VehicleInfoService.java b/src/main/java/com/muyu/web/service/VehicleInfoService.java index bee946e..8a165fd 100644 --- a/src/main/java/com/muyu/web/service/VehicleInfoService.java +++ b/src/main/java/com/muyu/web/service/VehicleInfoService.java @@ -15,15 +15,19 @@ public interface VehicleInfoService extends IService { /** * 根据数量生成测试车辆 - * @param sum 数量 + * + * @param sum 数量 + * @param messageTemplateId */ - void generate(Integer sum); + void generate(Integer sum, Long messageTemplateId); /** * 创建IVN - * @param vinStr VIN + * + * @param vinStr VIN + * @param messageTemplateId */ - void create (String vinStr); + void create (String vinStr, Long messageTemplateId); /** * 同步数据库 diff --git a/src/main/java/com/muyu/web/service/impl/SystemAuthServiceImpl.java b/src/main/java/com/muyu/web/service/impl/SystemAuthServiceImpl.java index 5d5c4a2..499f206 100644 --- a/src/main/java/com/muyu/web/service/impl/SystemAuthServiceImpl.java +++ b/src/main/java/com/muyu/web/service/impl/SystemAuthServiceImpl.java @@ -65,7 +65,9 @@ public class SystemAuthServiceImpl implements SystemAuthService { UserInfo userInfo = userInfoList.get(0); LambdaQueryWrapper 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()) diff --git a/src/main/java/com/muyu/web/service/impl/VechileInfoServiceImpl.java b/src/main/java/com/muyu/web/service/impl/VechileInfoServiceImpl.java index cc6d746..2b23196 100644 --- a/src/main/java/com/muyu/web/service/impl/VechileInfoServiceImpl.java +++ b/src/main/java/com/muyu/web/service/impl/VechileInfoServiceImpl.java @@ -40,12 +40,16 @@ public class VechileInfoServiceImpl extends ServiceImpl vehicleInfoList = Stream.generate(VehicleInfo::gen).limit(sum).toList(); + public void generate (Integer sum, Long messageTemplateId) { + List vehicleInfoList = + Stream.generate(() -> VehicleInfo.gen(() -> messageTemplateId)) + .limit(sum) + .toList(); this.saveBatch(vehicleInfoList); vehicleInfoList.forEach(vehicleInstanceService::init); } @@ -53,11 +57,12 @@ public class VechileInfoServiceImpl extends ServiceImpl vehicleInfoList = Arrays.stream(vinList).map(VehicleInfo::create).toList(); + List vehicleInfoList = Arrays.stream(vinList) + .map((String vin) -> VehicleInfo.create(vin, () -> messageTemplateId)) + .toList(); this.saveBatch(vehicleInfoList); vehicleInfoList.forEach(vehicleInstanceService::init); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index dc907f6..9ff61e9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 81 + port: 9865 spring: main: allow-circular-references: true