diff --git a/dragon-car-service/pom.xml b/dragon-car-service/pom.xml index 43da70a..1423012 100644 --- a/dragon-car-service/pom.xml +++ b/dragon-car-service/pom.xml @@ -35,6 +35,11 @@ spring-cloud-starter-alibaba-sentinel + + org.springframework.boot + spring-boot-starter-amqp + + org.springframework.boot diff --git a/dragon-car-service/src/main/java/com/dragon/car/service/mapper/FaultMapper.java b/dragon-car-service/src/main/java/com/dragon/car/service/mapper/FaultMapper.java index 1881d94..fdb8902 100644 --- a/dragon-car-service/src/main/java/com/dragon/car/service/mapper/FaultMapper.java +++ b/dragon-car-service/src/main/java/com/dragon/car/service/mapper/FaultMapper.java @@ -3,6 +3,9 @@ package com.dragon.car.service.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dragon.car.domain.FaultCode; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; /** * @author zhn @@ -10,4 +13,6 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface FaultMapper extends BaseMapper { + + void insertFaultRecord(@Param("vin") String vin, @Param("faultCode") String faultCode, @Param("startTime") Date startTime); } diff --git a/dragon-car-service/src/main/java/com/dragon/car/service/rabbit/ListenFaultCode.java b/dragon-car-service/src/main/java/com/dragon/car/service/rabbit/ListenFaultCode.java new file mode 100644 index 0000000..246a11e --- /dev/null +++ b/dragon-car-service/src/main/java/com/dragon/car/service/rabbit/ListenFaultCode.java @@ -0,0 +1,33 @@ +package com.dragon.car.service.rabbit; + +import com.alibaba.fastjson.JSONObject; +import com.rabbitmq.client.Channel; +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.HashMap; + +/** + * @author 冯凯 + * @version 1.0 + * @description: + * @date 2023/12/6 22:01 + */ +@Component +@Log4j2 +public class ListenFaultCode { + + @RabbitListener(queuesToDeclare = {@Queue(value = "fault_Dqueue")}) + public void consumerSubscribe(String mesg, Message message, Channel channel) { + log.info("收到消息【{}】", JSONObject.parseObject(mesg, HashMap.class)); + try { + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/dragon-car-service/src/main/java/com/dragon/car/service/service/FaultService.java b/dragon-car-service/src/main/java/com/dragon/car/service/service/FaultService.java index 8f16956..7bdad66 100644 --- a/dragon-car-service/src/main/java/com/dragon/car/service/service/FaultService.java +++ b/dragon-car-service/src/main/java/com/dragon/car/service/service/FaultService.java @@ -4,6 +4,7 @@ import com.dragon.car.domain.req.ReqFault; import com.dragon.car.domain.resp.RespFaultCode; import com.dragon.common.core.domain.Result; +import java.util.HashMap; import java.util.List; public interface FaultService { @@ -13,7 +14,7 @@ public interface FaultService { * @return RespFaultCode 故障返回实体类 */ Result> queryFaultCode (); - + /** * 故障管理-新增 * @@ -22,7 +23,7 @@ public interface FaultService { * @return 返回 0/1 */ Result insertFaultCode (ReqFault reqFault); - + /** * 故障管理-修改 * @@ -31,7 +32,7 @@ public interface FaultService { * @return 返回 0/1 */ Result updateFaultCode (ReqFault reqFault); - + /** * 故障管理-删除 * @@ -40,4 +41,6 @@ public interface FaultService { * @return 返回 0/1 */ Result deleteFaultCode (ReqFault reqFault); + + void insertFaultRecord(HashMap map); } diff --git a/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/CarManageServiceImpl.java b/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/CarManageServiceImpl.java index 598523b..cf6446b 100644 --- a/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/CarManageServiceImpl.java +++ b/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/CarManageServiceImpl.java @@ -17,11 +17,11 @@ import javax.annotation.Resource; @Service @Log4j2 public class CarManageServiceImpl implements CarManageService { - + @Resource CarManageMapper carMapper; - - + + /** * 初始化车辆 * @@ -42,6 +42,11 @@ public class CarManageServiceImpl implements CarManageService { } return Result.success (i > 0 ? "车辆上线" : "上线失败"); } - - + + @Override + public Result carAdd(String vin, String carName, String carType, String carColor, String carBrand, String carModel, String carEngine, String carPrice, String carImg) { + return null; + } + + } diff --git a/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/FaultServiceImpl.java b/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/FaultServiceImpl.java index 1aad43d..6a5036e 100644 --- a/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/FaultServiceImpl.java +++ b/dragon-car-service/src/main/java/com/dragon/car/service/service/impl/FaultServiceImpl.java @@ -1,5 +1,6 @@ package com.dragon.car.service.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.dragon.car.domain.FaultCode; import com.dragon.car.domain.req.ReqFault; @@ -10,9 +11,9 @@ import com.dragon.common.core.domain.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; /** * @author zhn @@ -30,7 +31,7 @@ import java.util.Optional; public class FaultServiceImpl implements FaultService { @Autowired FaultMapper faultMapper; - + /** * 故障管理-查询 * @@ -44,7 +45,7 @@ public class FaultServiceImpl implements FaultService { .map (a -> new RespFaultCode (a.getId (), a.getCode (), a.getName (), a.getStatus ())) // 使用map方法将A对象转换为B对象 .toList ()); } - + /** * 故障管理-新增 * @@ -60,7 +61,7 @@ public class FaultServiceImpl implements FaultService { .map (code -> faultMapper.insert (code) > 0 ? Result.success ("insert 成功") : Result.error ("insert 失败")) .orElse (Result.error ("添加操作异常")); } - + /** * 故障管理-修改 * @@ -80,8 +81,8 @@ public class FaultServiceImpl implements FaultService { } return Result.error ("操作状态不为 'u'"); } - - + + /** * 故障管理-删除 * @@ -89,13 +90,13 @@ public class FaultServiceImpl implements FaultService { * * @return 返回 0/1 */ - + @Override public Result deleteFaultCode (ReqFault reqFault) { String operation = reqFault.getOperation (); String code = reqFault.getOperationKey (); String operationStatus = reqFault.getOperationStatus (); - + return switch (operation) { case "d" -> { if (Objects.equals (operationStatus, "0")) { @@ -113,4 +114,24 @@ public class FaultServiceImpl implements FaultService { default -> Result.error ("操作状态不为 'd'"); }; } + + @Override + public void insertFaultRecord(HashMap map) { + Date startTime=new Date(); + String s = map.get("startTime"); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + startTime= format.parse(map.get("startTime")); + } catch (ParseException e) { + throw new RuntimeException(e); + } + faultMapper.insertFaultRecord(map.get("vin"),map.get("faultCode"),startTime); + } + + public static void main(String[] args) throws ParseException { + String time="2021-09-23 10:00:00"; + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date parse = format.parse(time); + System.out.println(parse); + } } diff --git a/dragon-car-service/src/main/resources/bootstrap.yml b/dragon-car-service/src/main/resources/bootstrap.yml index 977a3a7..545120a 100644 --- a/dragon-car-service/src/main/resources/bootstrap.yml +++ b/dragon-car-service/src/main/resources/bootstrap.yml @@ -23,6 +23,19 @@ spring: # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + rabbitmq: + host: 182.254.222.21 + port: 5672 + template: + mandatory: true + listener: + simple: + prefetch: 1 # 每次取一条消息消费 消费完成取下一条 + acknowledge-mode: manual # 设置消费端手动ack确认 + retry: + enabled: true # 支持重试 + publisher-confirms: true #确认消息已发送到交换机(Exchange) + publisher-returns: true #确认消息已发送到队列(Queue) mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl diff --git a/dragon-car-service/src/main/resources/mapper/fault/FaultCodeMapper.xml b/dragon-car-service/src/main/resources/mapper/fault/FaultCodeMapper.xml new file mode 100644 index 0000000..97f0183 --- /dev/null +++ b/dragon-car-service/src/main/resources/mapper/fault/FaultCodeMapper.xml @@ -0,0 +1,12 @@ + + + + + + + insert into fault_record_new + (vin, fault_code, start_time) + values + (#{vin}, #{faultCode}, #{startTime})) + +