find()优化缓存

dev.yang
Yueng 2024-10-10 12:29:38 +08:00
parent 7e0594185b
commit 7d0d0418c6
35 changed files with 192 additions and 232 deletions

View File

@ -2,7 +2,6 @@ package com.muyu.auth.controller;
import com.muyu.auth.form.LoginBody; import com.muyu.auth.form.LoginBody;
import com.muyu.auth.form.RegisterBody; import com.muyu.auth.form.RegisterBody;
import com.muyu.auth.remote.RunCarConditionRemote;
import com.muyu.auth.service.SysLoginService; import com.muyu.auth.service.SysLoginService;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.JwtUtils; import com.muyu.common.core.utils.JwtUtils;
@ -35,16 +34,12 @@ public class TokenController {
@Autowired @Autowired
private SysLoginService sysLoginService; private SysLoginService sysLoginService;
@Resource
private RunCarConditionRemote runCarCondition;
@PostMapping("login") @PostMapping("login")
public Result<?> login (@RequestBody LoginBody form) { public Result<?> login (@RequestBody LoginBody form) {
// 用户登录 // 用户登录
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),form.getFirmName()); LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),form.getFirmName());
// 获取登录token // 获取登录token
Map<String, Object> token = tokenService.createToken(userInfo); Map<String, Object> token = tokenService.createToken(userInfo);
runCarCondition.runCarCondition();
return Result.success(token); return Result.success(token);
} }

View File

@ -1,18 +0,0 @@
package com.muyu.auth.remote;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @Authoryang
* @Packagecom.muyu.auth.remote
* @Projectcloud-server-8
* @nameRunCarConditionRemote
* @Date2024/10/8 22:21
*/
@FeignClient(name = "cloud-electronic")
public interface RunCarConditionRemote {
@GetMapping("/text")
public void runCarCondition();
}

View File

@ -86,12 +86,6 @@
<artifactId>cloud-common-core</artifactId> <artifactId>cloud-common-core</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-modules-car</artifactId>
<version>3.6.3</version>
</dependency>
<dependency> <dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>ecs20140526</artifactId> <artifactId>ecs20140526</artifactId>

View File

@ -3,18 +3,19 @@ package com.muyu.enterprise.cache.car;
import com.muyu.common.cache.CacheAbsBasic; import com.muyu.common.cache.CacheAbsBasic;
import com.muyu.domain.CarInformation; import com.muyu.domain.CarInformation;
import com.muyu.domain.resp.CarFenceGroupResp; import com.muyu.domain.resp.CarFenceGroupResp;
import com.muyu.domain.resp.CarInformationResp;
import java.util.List; import java.util.List;
/** /**
* *
* @Authoryang * @Authoryang
* @Packagecom.muyu.cache * @Packagecom.muyu.cache
* @Projectcloud-server-8 * @Projectcloud-server-8
* @nameVehicleCacheService * @nameVehicleCacheService
* @Date2024/9/30 11:50 * @Date2024/9/30 11:50
*/ */
public class VehicleCacheCarInformationService extends CacheAbsBasic<String, List<CarInformation>> { public class VehicleCacheCarInformationService extends CacheAbsBasic<String, List<CarInformationResp>> {
@Override @Override
public String keyPre() { public String keyPre() {
return "CarInformation:info:"; return "CarInformation:info:";

View File

@ -5,7 +5,7 @@ import com.muyu.domain.req.CarInformationAddReq;
import com.muyu.domain.req.CarInformationUpdReq; import com.muyu.domain.req.CarInformationUpdReq;
/** /**
* *
* @Authoryang * @Authoryang
* @Packagecom.muyu.cache * @Packagecom.muyu.cache
* @Projectcloud-server-8 * @Projectcloud-server-8

View File

@ -1,23 +1,21 @@
package com.muyu.enterprise.cache.car; package com.muyu.enterprise.cache.car;
import com.muyu.common.cache.CacheAbsBasic; import com.muyu.common.cache.CacheAbsBasic;
import com.muyu.domain.req.CarInformationAddReq; import com.muyu.domain.CarFence;
import com.muyu.domain.resp.CarInformationResp; import com.muyu.domain.CarType;
import java.util.List;
/** /**
* *
* @Authoryang * @Authoryang
* @Packagecom.muyu.cache * @Packagecom.muyu.cache
* @Projectcloud-server-8 * @Projectcloud-server-8
* @nameVehicleCacheService * @nameVehicleCacheService
* @Date2024/9/30 11:50 * @Date2024/9/30 11:50
*/ */
public class VehicleCacheCarInformationFenceRespService extends CacheAbsBasic<String, List<CarInformationResp>> { public class VehicleCacheCarTypeService extends CacheAbsBasic<String, CarType> {
@Override @Override
public String keyPre() { public String keyPre() {
return "CarInformationFenceResp:info:"; return "CarType:info:";
} }
@Override @Override

View File

@ -0,0 +1,25 @@
package com.muyu.enterprise.cache.fault;
import com.muyu.common.cache.CacheAbsBasic;
import com.muyu.domain.FaultCode;
import com.muyu.domain.resp.CarFenceResp;
/**
*
* @Authoryang
* @Packagecom.muyu.cache
* @Projectcloud-server-8
* @nameVehicleCacheService
* @Date2024/9/30 11:50
*/
public class VehicleCacheFaultService extends CacheAbsBasic<String, FaultCode> {
@Override
public String keyPre() {
return "FaultCode:info:";
}
@Override
public String decode(String key) {
return key.replace("vehicle:info:","");
}
}

View File

@ -6,7 +6,7 @@ import com.muyu.domain.req.CarInformationAddReq;
import com.muyu.domain.req.FaultCodeAddReq; import com.muyu.domain.req.FaultCodeAddReq;
/** /**
* *
* @Authoryang * @Authoryang
* @Packagecom.muyu.cache * @Packagecom.muyu.cache
* @Projectcloud-server-8 * @Projectcloud-server-8

View File

@ -0,0 +1,25 @@
package com.muyu.enterprise.cache.fence;
import com.muyu.common.cache.CacheAbsBasic;
import com.muyu.domain.CarFence;
import com.muyu.domain.resp.CarFenceResp;
/**
* add
* @Authoryang
* @Packagecom.muyu.cache
* @Projectcloud-server-8
* @nameVehicleCacheService
* @Date2024/9/30 11:50
*/
public class VehicleCacheFenceAddService extends CacheAbsBasic<String, CarFence> {
@Override
public String keyPre() {
return "CarFenceAdd:info:";
}
@Override
public String decode(String key) {
return key.replace("vehicle:info:","");
}
}

View File

@ -1,24 +1,24 @@
package com.muyu.enterprise.cache.car; package com.muyu.enterprise.cache.fence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.muyu.common.cache.CacheAbsBasic; import com.muyu.common.cache.CacheAbsBasic;
import com.muyu.domain.CarFence;
import com.muyu.domain.CarInformation; import com.muyu.domain.CarInformation;
import com.muyu.domain.resp.CarInformationResp; import com.muyu.domain.resp.CarFenceResp;
import java.util.List; import java.util.List;
/** /**
* *
* @Authoryang * @Authoryang
* @Packagecom.muyu.cache * @Packagecom.muyu.cache
* @Projectcloud-server-8 * @Projectcloud-server-8
* @nameVehicleCacheService * @nameVehicleCacheService
* @Date2024/9/30 11:50 * @Date2024/9/30 11:50
*/ */
public class VehicleCacheCarInformationRespService extends CacheAbsBasic<String, Page<CarInformationResp>> { public class VehicleCacheFenceService extends CacheAbsBasic<String, CarFenceResp> {
@Override @Override
public String keyPre() { public String keyPre() {
return "CarInformationResp:info:"; return "CarFenceResp:info:";
} }
@Override @Override

View File

@ -1,6 +1,8 @@
com.muyu.enterprise.cache.car.VehicleCacheCarInformationService com.muyu.enterprise.cache.car.VehicleCacheCarInformationService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationRespService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationAddService com.muyu.enterprise.cache.car.VehicleCacheCarInformationAddService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationUpdService com.muyu.enterprise.cache.car.VehicleCacheCarInformationUpdService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationFenceRespService com.muyu.enterprise.cache.car.VehicleCacheCarTypeService
com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService
com.muyu.enterprise.cache.fence.VehicleCacheFenceService
com.muyu.enterprise.cache.fence.VehicleCacheFenceAddService
com.muyu.enterprise.cache.fault.VehicleCacheFaultService

View File

@ -1,5 +1,7 @@
package com.muyu.domain; package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -25,6 +27,7 @@ public class CarFenceClazz {
/** /**
* ID * ID
*/ */
@TableId(value = "clazz_id",type = IdType.AUTO)
private Integer clazzId; private Integer clazzId;
/** /**
* *

View File

@ -1,5 +1,7 @@
package com.muyu.domain; package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -25,6 +27,7 @@ public class CarFenceType {
/** /**
* ID * ID
*/ */
@TableId(value = "type_id",type = IdType.AUTO)
private Integer typeId; private Integer typeId;
/** /**
* *

View File

@ -1,5 +1,7 @@
package com.muyu.domain; package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -25,6 +27,7 @@ public class CarMessage {
/** /**
* *
*/ */
@TableId(value = "message_type_id",type = IdType.AUTO)
private Long messageTypeId; private Long messageTypeId;
/** /**
* *

View File

@ -1,5 +1,7 @@
package com.muyu.domain; package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -26,7 +28,8 @@ public class CarType {
/** /**
* ID * ID
*/ */
private long carTypeId; @TableId(value = "car_type_id",type = IdType.AUTO)
private Long carTypeId;
/** /**
* *
*/ */

View File

@ -36,7 +36,7 @@ public class FaultCode {
*Id *Id
*/ */
@TableId(value = "faultcode_id",type = IdType.AUTO) @TableId(value = "faultcode_id",type = IdType.AUTO)
private long faultcodeId; private Long faultcodeId;
/** /**
*Id *Id
*/ */
@ -97,7 +97,7 @@ public class FaultCode {
public static FaultCode updfaultcode(FaultCodeUpdReq faultCodeUpdReq){ public static FaultCode updfaultcode(FaultCodeUpdReq faultCodeUpdReq){
return FaultCode.builder() return FaultCode.builder()
.faultcodeId(0) .faultcodeId(0L)
.messageTypeId(faultCodeUpdReq.getMessageTypeId()) .messageTypeId(faultCodeUpdReq.getMessageTypeId())
.faultcodeNumber(faultCodeUpdReq.getFaultcodeNumber()) .faultcodeNumber(faultCodeUpdReq.getFaultcodeNumber())
.faultGroup(faultCodeUpdReq.getFaultGroup()) .faultGroup(faultCodeUpdReq.getFaultGroup())

View File

@ -23,25 +23,15 @@ import java.util.List;
@Tag(name = "故障码,电子围栏,车辆,报文") @Tag(name = "故障码,电子围栏,车辆,报文")
public class FaultCodeCache { public class FaultCodeCache {
/**
*
*/
private List<CarFence> carFences;
/**
*
*/
private WarnStrategy warnStrategies;
/** /**
* *
*/ */
public List<CarInformation> carInformation; public CarInformation carInformation;
/** /**
* *
*/ */
private List<FaultCode> faultCode; private FaultCode faultCode;
/** /**
* *

View File

@ -36,7 +36,7 @@ public class FaultCondition {
* Id * Id
*/ */
@TableId(value = "carcondition_id",type = IdType.AUTO) @TableId(value = "carcondition_id",type = IdType.AUTO)
private long carconditionId; private Long carconditionId;
/** /**
* Id * Id
*/ */

View File

@ -32,7 +32,7 @@ public class FaultLabel {
* *
*/ */
@TableId(value = "message_type_id",type = IdType.AUTO) @TableId(value = "message_type_id",type = IdType.AUTO)
private long messageTypeId; private Long messageTypeId;
/** /**
* *
*/ */

View File

@ -34,7 +34,7 @@ public class FaultLog {
* Id * Id
*/ */
@TableId(value = "log_id",type = IdType.AUTO) @TableId(value = "log_id",type = IdType.AUTO)
private long logId; private Long logId;
/** /**
* Id * Id
*/ */

View File

@ -26,7 +26,7 @@ public class FaultType {
*Id *Id
*/ */
@TableId(value = "faulttype_id",type = IdType.AUTO) @TableId(value = "faulttype_id",type = IdType.AUTO)
private long faulttypeId; private Long faulttypeId;
/** /**
* *
*/ */

View File

@ -27,7 +27,7 @@ public class FirmPermission {
* Id * Id
*/ */
@TableId(value = "permission_id") @TableId(value = "permission_id")
private long permissionId; private Long permissionId;
/** /**
* *

View File

@ -33,7 +33,7 @@ public class Message {
* id * id
*/ */
@TableId(value = "id",type = IdType.AUTO) @TableId(value = "id",type = IdType.AUTO)
private long id; private Long id;
/** /**
* *

View File

@ -43,6 +43,7 @@ public class CarFenceController {
@Validated @RequestBody CarFenceReq req @Validated @RequestBody CarFenceReq req
){ ){
Page<CarFenceResp> connects = carFenceService.selectCarFence(req); Page<CarFenceResp> connects = carFenceService.selectCarFence(req);
log.info("查询数据:"+ connects); log.info("查询数据:"+ connects);
return Result.success( return Result.success(

View File

@ -35,32 +35,21 @@ public class CarInformationController {
@Resource @Resource
private CarInformationService carInformationService; private CarInformationService carInformationService;
private VehicleCacheCarInformationService vehicleCacheCarInformationService; private VehicleCacheCarInformationService vehicleCacheCarInformationService;
private VehicleCacheCarInformationRespService vehicleCacheCarInformationRespService;
private VehicleCacheCarInformationAddService vehicleCacheCarInformationAddService; private VehicleCacheCarInformationAddService vehicleCacheCarInformationAddService;
private VehicleCacheCarInformationUpdService vehicleCacheCarInformationUpdService; private VehicleCacheCarInformationUpdService vehicleCacheCarInformationUpdService;
private VehicleCacheCarInformationFenceRespService vehicleCacheCarInformationFenceRespService;
/** /**
* *
*/ */
@PostMapping("/selectCarInformation") @PostMapping("/selectCarInformation")
@Operation(summary = "查询数据",description = "查询数据") @Operation(summary = "查询数据",description = "查询数据")
public Result<List<CarInformation>> selectConnect(){ public Result<List<CarInformation>> selectConnect(){
List<CarInformation> carFenceRespPage = vehicleCacheCarInformationService
.get(vehicleCacheCarInformationService
.keyPre()+ ObtainRootLogin
.obtain());
if (CollectionUtils.isEmpty(carFenceRespPage)) {
return Result.success(carFenceRespPage);
}
List<CarInformation> connects = carInformationService.list() List<CarInformation> connects = carInformationService.list()
.stream() .stream()
.map(CarInformation::carInformationBuilder) .map(CarInformation::carInformationBuilder)
.toList(); .toList();
vehicleCacheCarInformationService.put(
vehicleCacheCarInformationService.keyPre()+ObtainRootLogin.obtain()
,connects);
return Result.success( return Result.success(
connects, "操作成功" connects, "操作成功"
); );
@ -88,18 +77,14 @@ public class CarInformationController {
@Operation(summary = "企业车辆管理列表") @Operation(summary = "企业车辆管理列表")
public Result<Page<CarInformationResp>> selectCarInformationList(@Validated @RequestBody CarInformationListReq carInformationListReq) { public Result<Page<CarInformationResp>> selectCarInformationList(@Validated @RequestBody CarInformationListReq carInformationListReq) {
Page<CarInformationResp> carFenceRespPage = vehicleCacheCarInformationRespService
.get(vehicleCacheCarInformationRespService
.keyPre()+ ObtainRootLogin
.obtain());
if (CollectionUtils.isEmpty(carFenceRespPage.getRecords())) {
return Result.success(carFenceRespPage);
}
Page<CarInformationResp> pageInfo = carInformationService.selectCarInformationList(carInformationListReq); Page<CarInformationResp> pageInfo = carInformationService.selectCarInformationList(carInformationListReq);
log.info("企业车辆管理列表查询",carInformationListReq,pageInfo); log.info("企业车辆管理列表查询",carInformationListReq,pageInfo);
vehicleCacheCarInformationRespService.put( List<CarInformationResp> records = pageInfo.getRecords();
vehicleCacheCarInformationRespService.keyPre()+ObtainRootLogin.obtain() records.forEach(carInformation -> {
,pageInfo); vehicleCacheCarInformationService.put(
vehicleCacheCarInformationService.keyPre()+carInformation.getCarInformationVIN()
,records);
});
return Result.success(pageInfo); return Result.success(pageInfo);
} }
@ -116,7 +101,7 @@ public class CarInformationController {
vehicleCacheCarInformationAddService.put( vehicleCacheCarInformationAddService.put(
vehicleCacheCarInformationAddService vehicleCacheCarInformationAddService
.keyPre()+ObtainRootLogin.obtain(), carInformationAddReq); .keyPre()+carInformationAddReq.getCarInformationVIN(), carInformationAddReq);
return carInformationService.addCarInformation(carInformationAddReq) return carInformationService.addCarInformation(carInformationAddReq)
?Result.success("添加车辆成功") ?Result.success("添加车辆成功")
:Result.error(402,"添加车辆失败"); :Result.error(402,"添加车辆失败");
@ -169,17 +154,8 @@ public class CarInformationController {
@GetMapping("/selectCarInformationIdAndLicensePlate") @GetMapping("/selectCarInformationIdAndLicensePlate")
@Operation(summary = "查询企业车辆 carInformationID 和 carInformationLicensePlate") @Operation(summary = "查询企业车辆 carInformationID 和 carInformationLicensePlate")
public Result<List<CarInformationResp>> selectCarInformationIdAndLicensePlate(){ public Result<List<CarInformationResp>> selectCarInformationIdAndLicensePlate(){
List<CarInformationResp> carFenceRespPage = vehicleCacheCarInformationFenceRespService
.get(vehicleCacheCarInformationFenceRespService
.keyPre()+ ObtainRootLogin
.obtain());
if (CollectionUtils.isEmpty(carFenceRespPage)) {
return Result.success(carFenceRespPage);
}
List<CarInformationResp> carInformations = carInformationService.selectBycarInformationIDAndLicensePlate(); List<CarInformationResp> carInformations = carInformationService.selectBycarInformationIDAndLicensePlate();
vehicleCacheCarInformationFenceRespService.put(
vehicleCacheCarInformationFenceRespService.keyPre()+ObtainRootLogin.obtain()
,carInformations);
return Result.success(carInformations); return Result.success(carInformations);
} }

View File

@ -1,16 +1,21 @@
package com.muyu.server.controller; package com.muyu.server.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarInformation;
import com.muyu.domain.CarType; import com.muyu.domain.CarType;
import com.muyu.enterprise.cache.car.VehicleCacheCarTypeService;
import com.muyu.server.service.CarInformationService;
import com.muyu.server.service.CarTypeService; import com.muyu.server.service.CarTypeService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired; import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.Locale;
/** /**
* *
@ -23,10 +28,12 @@ import java.util.List;
@RequestMapping("/cartype") @RequestMapping("/cartype")
@RestController @RestController
@AllArgsConstructor
public class CarTypeController { public class CarTypeController {
@Autowired private final CarTypeService carTypeService;
private CarTypeService carTypeService; private final CarInformationService carInformationService;
private final VehicleCacheCarTypeService vehicleCacheCarTypeService;
/** /**
@ -38,7 +45,16 @@ public class CarTypeController {
public Result carTypeList(){ public Result carTypeList(){
List<CarType> data = carTypeService.selectcarType(); List<CarType> data = carTypeService.selectcarType();
data.forEach(carType -> {
List<CarInformation> list = carInformationService.list(new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationType, carType.getCarTypeId()));
list.forEach(carInformation -> {
vehicleCacheCarTypeService
.put(vehicleCacheCarTypeService
.keyPre()+carInformation
.getCarInformationVIN(),carType);
});
});
return Result.success(data); return Result.success(data);
} }
} }

View File

@ -10,7 +10,7 @@ import com.muyu.domain.resp.FaultCodeTotalListResp;
import com.muyu.server.service.FaultCodeService; import com.muyu.server.service.FaultCodeService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired; import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -25,11 +25,12 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("/faultcode") @RequestMapping("/faultcode")
@AllArgsConstructor
@Tag(name = "车辆故障码控制层",description = "从故障信息表中查询数据") @Tag(name = "车辆故障码控制层",description = "从故障信息表中查询数据")
public class FaultCodeController { public class FaultCodeController {
@Autowired private final FaultCodeService faultCodeService;
private FaultCodeService faultCodeService;

View File

@ -59,10 +59,7 @@ public class FaultConditionController {
if (faultConditionList.size()>0){ if (faultConditionList.size()>0){
return Result.error("此车辆类型已存在所对应的故障规则,无需重新制定,可在原规则上进行修改"); return Result.error("此车辆类型已存在所对应的故障规则,无需重新制定,可在原规则上进行修改");
} }
boolean save = faultConditionService.save(FaultCondition.faultConditionadd(faultConditionAddReq)); faultConditionService.save(FaultCondition.faultConditionadd(faultConditionAddReq));
if (save){
faultConditionService.RunCarCondition();
}
return Result.success(null,"规则制定成功"); return Result.success(null,"规则制定成功");
} }

View File

@ -33,7 +33,7 @@ public class FirmPermissionController {
* @param firmUpdPermissionReq * @param firmUpdPermissionReq
* @return * @return
*/ */
@PostMapping("/updpermission") @PostMapping("/permissionupd")
@Operation(summary = "修改权限分配",description = "修改权限分配") @Operation(summary = "修改权限分配",description = "修改权限分配")
public Result updpermission(@RequestBody FirmUpdPermissionReq firmUpdPermissionReq){ public Result updpermission(@RequestBody FirmUpdPermissionReq firmUpdPermissionReq){
firmPermissionService.updpermission(firmUpdPermissionReq); firmPermissionService.updpermission(firmUpdPermissionReq);

View File

@ -39,8 +39,4 @@ public interface FaultConditionService extends IService<FaultCondition> {
*/ */
List<FaultCondition> saveFaultConditionList(); List<FaultCondition> saveFaultConditionList();
/**
*
*/
void RunCarCondition();
} }

View File

@ -9,8 +9,11 @@ import com.muyu.domain.req.*;
import com.muyu.domain.resp.CarFenceGroupResp; import com.muyu.domain.resp.CarFenceGroupResp;
import com.muyu.domain.resp.CarFenceGroupsResp; import com.muyu.domain.resp.CarFenceGroupsResp;
import com.muyu.domain.resp.CarFenceResp; import com.muyu.domain.resp.CarFenceResp;
import com.muyu.enterprise.cache.fence.VehicleCacheFenceAddService;
import com.muyu.enterprise.cache.fence.VehicleCacheFenceService;
import com.muyu.server.mapper.CarFenceMapper; import com.muyu.server.mapper.CarFenceMapper;
import com.muyu.server.service.*; import com.muyu.server.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -28,6 +31,7 @@ import java.util.List;
*/ */
@Service @Service
@Log4j2 @Log4j2
@AllArgsConstructor
public class CarFenceServiceImpl public class CarFenceServiceImpl
extends ServiceImpl<CarFenceMapper, CarFence> extends ServiceImpl<CarFenceMapper, CarFence>
implements CarFenceService { implements CarFenceService {
@ -44,6 +48,8 @@ public class CarFenceServiceImpl
private CarMiddleSerivce carMiddleSerivce; private CarMiddleSerivce carMiddleSerivce;
@Autowired @Autowired
private CarInformationService carInformationService; private CarInformationService carInformationService;
private final VehicleCacheFenceService vehicleCacheFenceService;
private final VehicleCacheFenceAddService vehicleCacheFenceAddService;
/** /**
* *
*/ */
@ -83,8 +89,9 @@ public class CarFenceServiceImpl
.toList(); .toList();
List<CarFence> carFenceList = carFencePage.getRecords(); List<CarFence> carFenceList = carFencePage.getRecords();
this.optimizeEntity(carFenceList,carFenceClazzList,carFenceTypeList); this.optimizeEntity(carFenceList,carFenceClazzList,carFenceTypeList);
//构建一个新的分页响应对象 //构建一个新的分页响应对象
return new Page<>() {{ Page<CarFenceResp> carFenceRespPage = new Page<>() {{
//从查询结果中获取记录并使用流式处理将每条记录转换为EtlDataScoreResp对象 //从查询结果中获取记录并使用流式处理将每条记录转换为EtlDataScoreResp对象
List<CarFenceResp> etlDataScoreRespList = carFencePage.getRecords().stream() List<CarFenceResp> etlDataScoreRespList = carFencePage.getRecords().stream()
//使用map操作将EtlDataScore对象转换为EtlDataScoreResp对象 //使用map操作将EtlDataScore对象转换为EtlDataScoreResp对象
@ -100,6 +107,17 @@ public class CarFenceServiceImpl
//设置分页响应中的每页记录数 //设置分页响应中的每页记录数
setSize(carFencePage.getSize()); setSize(carFencePage.getSize());
}}; }};
List<CarFenceResp> records = carFenceRespPage.getRecords();
records.forEach(carFenceResp -> {
List<CarInformation> list = carInformationService
.list(new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationFence, carFenceResp.getId()));
list.forEach(carInformation -> {
vehicleCacheFenceService.put(vehicleCacheFenceService.keyPre()+carInformation.getCarInformationVIN(),carFenceResp);
});
});
return carFenceRespPage;
} }
/** /**
@ -118,6 +136,12 @@ public class CarFenceServiceImpl
carMiddleGroup.setFenceGroupId(carFenceGroup.getId()); carMiddleGroup.setFenceGroupId(carFenceGroup.getId());
carMiddleGroupService.save(carMiddleGroup); carMiddleGroupService.save(carMiddleGroup);
}); });
List<CarInformation> list = carInformationService
.list(new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationFence, carFence.getId()));
list.forEach(carInformation -> {
vehicleCacheFenceAddService.put(vehicleCacheFenceAddService.keyPre()+carInformation.getCarInformationVIN(),carFence);
});
return connects; return connects;
} }

View File

@ -12,7 +12,9 @@ import com.muyu.domain.req.FaultCodeUpdReq;
import com.muyu.domain.resp.FaultCodeListResp; import com.muyu.domain.resp.FaultCodeListResp;
import com.muyu.domain.resp.FaultCodeTotalListResp; import com.muyu.domain.resp.FaultCodeTotalListResp;
import com.muyu.domain.resp.FaultConditionListResp; import com.muyu.domain.resp.FaultConditionListResp;
import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService; import com.muyu.domain.resp.FaultConditionResp;
import com.muyu.enterprise.cache.car.VehicleCacheCarInformationService;
import com.muyu.enterprise.cache.fault.VehicleCacheFaultService;
import com.muyu.server.mapper.FaultCodeMapper; import com.muyu.server.mapper.FaultCodeMapper;
import com.muyu.server.service.CarFenceService; import com.muyu.server.service.CarFenceService;
import com.muyu.server.service.CarInformationService; import com.muyu.server.service.CarInformationService;
@ -54,7 +56,7 @@ public class FaultCodeServiceImpl extends ServiceImpl<FaultCodeMapper, FaultCode
long count = this.count(queryWrapper); long count = this.count(queryWrapper);
MPJLambdaWrapper<FaultCode> wrapper = new MPJLambdaWrapper<>(); MPJLambdaWrapper<FaultCode> wrapper = new MPJLambdaWrapper<>();
wrapper.select( MPJLambdaWrapper<FaultCode> eq = wrapper.select(
FaultCode::getFaultcodeId, FaultCode::getFaultcodeId,
FaultCode::getMessageTypeId, FaultCode::getMessageTypeId,
FaultCode::getFaultcodeNumber, FaultCode::getFaultcodeNumber,

View File

@ -3,7 +3,6 @@ package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.*; import com.muyu.domain.*;
import com.muyu.domain.req.FaultConditionAddReq; import com.muyu.domain.req.FaultConditionAddReq;
import com.muyu.domain.req.FaultConditionListReq; import com.muyu.domain.req.FaultConditionListReq;
@ -12,12 +11,11 @@ import com.muyu.domain.resp.FaultConditionTotalListResp;
import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService; import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService;
import com.muyu.server.mapper.FaultConditionMapper; import com.muyu.server.mapper.FaultConditionMapper;
import com.muyu.server.service.*; import com.muyu.server.service.*;
import com.muyu.server.util.RunCarCondition;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -37,12 +35,12 @@ public class FaultConditionServiceImpl
@Autowired @Autowired
private FaultConditionMapper faultConditionMapper; private FaultConditionMapper faultConditionMapper;
private final VehicleCacheFaultCodeAddService vehicleCacheFaultCodeAddService;
private final CarInformationService carInformationService; private final CarInformationService carInformationService;
private final CarFenceService carFenceService; private final CarFenceService carFenceService;
private final WarnStrategyService warnStrategyService; private final WarnStrategyService warnStrategyService;
private final FaultCodeService faultCodeService; private final FaultCodeService faultCodeService;
private final FaultLabelService faultLabelService; private final FaultLabelService faultLabelService;
private final VehicleCacheFaultCodeAddService vehicleCacheFaultCodeAddService;
@ -74,9 +72,36 @@ public class FaultConditionServiceImpl
} }
wrapper.last("LIMIT "+ ((faultConditionListReq.getPageNum()-1)*faultConditionListReq.getPageSize())+", "+faultConditionListReq.getPageSize()); wrapper.last("LIMIT "+ ((faultConditionListReq.getPageNum()-1)*faultConditionListReq.getPageSize())+", "+faultConditionListReq.getPageSize());
List<FaultConditionListResp> faultConditionListResps = faultConditionMapper.selectJoinList(FaultConditionListResp.class, wrapper); List<FaultConditionListResp> faultConditionListResps = faultConditionMapper.selectJoinList(FaultConditionListResp.class, wrapper);
//添加故障车辆缓存
this.CacheFault(faultConditionListResps);
return FaultConditionTotalListResp.faultConditionTotalListResp(faultConditionListResps,count); return FaultConditionTotalListResp.faultConditionTotalListResp(faultConditionListResps,count);
} }
private void CacheFault(@NotNull List<FaultConditionListResp> faultConditionListResps) {
faultConditionListResps.forEach(faultConditionListResp -> {
List<CarInformation> list = carInformationService
.list(new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationType, faultConditionListResp.getCarTypeId()));
list.forEach(carInformation -> {
List<FaultCode> list1 = faultCodeService.list(new LambdaQueryWrapper<FaultCode>()
.eq(FaultCode::getFaultcodeId, faultConditionListResp.getMessageTypeId()));
list1.forEach(faultCode -> {
FaultCodeCache faultCodeCache = new FaultCodeCache();
faultCodeCache.setCarInformation(carInformation);
faultCodeCache.setFaultCode(faultCode);
FaultLabel faultLabel = new FaultLabel();
faultLabel.setMessageTypeId(faultConditionListResp.getMessageTypeId());
faultLabel.setMessageTypeName(faultConditionListResp.getMessageTypeName());
faultLabel.setMessageTypeCode(faultConditionListResp.getMessageTypeCode());
faultCodeCache.setFaultLabels(faultLabel);
vehicleCacheFaultCodeAddService.put(vehicleCacheFaultCodeAddService
.keyPre()+carInformation
.getCarInformationVIN(),faultCodeCache);
});
});
});
}
/** /**
* *
@ -90,6 +115,7 @@ public class FaultConditionServiceImpl
queryWrapper.eq(FaultCondition::getCarTypeId,faultConditionAddReq.getCarTypeId()) queryWrapper.eq(FaultCondition::getCarTypeId,faultConditionAddReq.getCarTypeId())
.eq(FaultCondition::getMessageTypeId,faultConditionAddReq.getMessageTypeId()); .eq(FaultCondition::getMessageTypeId,faultConditionAddReq.getMessageTypeId());
List<FaultCondition> list = this.list(queryWrapper); List<FaultCondition> list = this.list(queryWrapper);
return list; return list;
} }
@ -98,67 +124,4 @@ public class FaultConditionServiceImpl
List<FaultCondition> list = this.list(); List<FaultCondition> list = this.list();
return list; return list;
} }
/**
*
*/
@Override
public void RunCarCondition() {
List<FaultCondition> list = this.saveFaultConditionList();
text(list, carInformationService, carFenceService, warnStrategyService, faultCodeService, faultLabelService, vehicleCacheFaultCodeAddService);
}
public static void text(List<FaultCondition> list, CarInformationService carInformationService, CarFenceService carFenceService, WarnStrategyService warnStrategyService, FaultCodeService faultCodeService, FaultLabelService faultLabelService, VehicleCacheFaultCodeAddService vehicleCacheFaultCodeAddService) {
list.forEach(faultCondition -> {
List<CarInformation> carInformationList = carInformationService.selectCarInformation(faultCondition.getCarTypeId());
carInformationList.forEach(carInformation -> {
FaultCodeCache faultCodeCache = new FaultCodeCache();
if (StringUtils.isNotNull(carInformation.getCarInformationFence())){
faultCodeCache.setCarFences(carFenceService.CarFenceList(carInformation.getCarInformationFence()));
}
if (StringUtils.isNotNull(carInformation.getCarInformationState())) {
faultCodeCache.setWarnStrategies(warnStrategyService
.selectWarnStrategyById(Long.valueOf(carInformation.getCarInformationState())));
}
if (StringUtils.isNotNull(faultCondition.getMessageTypeId())) {
faultCodeCache.setFaultCode(faultCodeService.faultCodeList(faultCondition.getMessageTypeId()));
faultCodeCache.setFaultLabels(faultLabelService.faultLabelList(faultCondition.getMessageTypeId()));
}
ArrayList<CarInformation> carInformations = new ArrayList<>();
carInformations.add(carInformation);
faultCodeCache.setCarInformation(carInformations);
vehicleCacheFaultCodeAddService.put(vehicleCacheFaultCodeAddService
.keyPre()+carInformation
.getCarInformationVIN(), faultCodeCache);
});
});
}
// private void faultCache(long messageTypeId, Long faulttypeId,String faultcodeNumber) {
// FaultCodeCache faultCodeCache = new FaultCodeCache();
//
// //添加故障标签
// faultCodeCache.getFaultLabels().addAll(faultLabelService.selectFaultCode(messageTypeId));
//
// //添加车辆
// List<CarInformation> carInformationList = carInformationService.selectCarInformation(faulttypeId);
// faultCodeCache.getCarInformation().addAll(carInformationList);
//
// //添加故障码
// faultCodeCache.getFaultCode().addAll(this.list(new LambdaQueryWrapper<FaultCode>()
// .eq(FaultCode::getFaultcodeNumber, faultcodeNumber))
// .stream().map(FaultCode::faultCodeBuilder)
// .toList());
//
// //添加围栏
// ArrayList<CarFence> carFences1 = new ArrayList<>();
// carInformationList.forEach(carInformation -> {
// CarFence carFence = carFenceService.selectCarFenceList(carInformation.getCarInformationFence());
// carFences1.add(carFence);
// });
// faultCodeCache.getCarFences().addAll(carFences1);
// vehicleCacheFaultCodeAddService.put(vehicleCacheFaultCodeAddService.keyPre()
// + ObtainRootLogin.obtain()
// , faultCodeCache);
// }
} }

View File

@ -1,40 +0,0 @@
package com.muyu.server.util;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.*;
import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService;
import com.muyu.server.service.*;
import com.muyu.server.service.impl.FaultConditionServiceImpl;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.ArrayList;
import java.util.List;
/**
* redis
* @Authoryang
* @Packagecom.muyu.server.util
* @Projectcloud-server-8
* @nameRunCarCondition
* @Date2024/10/7 19:43
*/
@Component
@AllArgsConstructor
public class RunCarCondition {
private final VehicleCacheFaultCodeAddService vehicleCacheFaultCodeAddService;
private final FaultConditionService faultConditionService;
private final CarInformationService carInformationService;
private final CarFenceService carFenceService;
private final WarnStrategyService warnStrategyService;
private final FaultCodeService faultCodeService;
private final FaultLabelService faultLabelService;
@GetMapping("text")
public void runCarCondition(){
List<FaultCondition> list = faultConditionService.saveFaultConditionList();
FaultConditionServiceImpl.text(list, carInformationService, carFenceService, warnStrategyService, faultCodeService, faultLabelService, vehicleCacheFaultCodeAddService);
}
}