diff --git a/JavaSample-tcp150158332341883/.lck b/JavaSample-tcp150158332341883/.lck new file mode 100644 index 0000000..e69de29 diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java b/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java index a3d1251..b9fa745 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java +++ b/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java @@ -30,6 +30,10 @@ public class RegisterBody extends LoginBody { /** * 手机号 */ - private String phoneNumber; + private String phonenumber; + /** + * 公司注册人名称 + */ + private String nickName; } diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index e49b481..6233ff5 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -127,10 +127,18 @@ public class SysLoginService { // 注册用户信息 SysUser sysUser = new SysUser(); + //公司账号 sysUser.setUserName(registerBody.getUsername()); + //公司邮箱 sysUser.setEmail(registerBody.getEmail()); - sysUser.setPhonenumber(registerBody.getPhoneNumber()); + //公司号码 + sysUser.setPhonenumber(registerBody.getPhonenumber()); + //密码 sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); + //公司注册人名称 + sysUser.setNickName(registerBody.getNickName()); + //企业名称 + sysUser.setFirmName(registerBody.getFirmName()); Result registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); if (Result.FAIL == registerResult.getCode()) { diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index c286e94..b3c1ab8 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 159.75.188.178:8848 user-name: nacos password: nacos namespace: xxy diff --git a/cloud-common/cloud-common-kafka/pom.xml b/cloud-common/cloud-common-kafka/pom.xml new file mode 100644 index 0000000..6bd82ac --- /dev/null +++ b/cloud-common/cloud-common-kafka/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-kafka + + + 17 + 17 + UTF-8 + + + + + org.apache.kafka + kafka-clients + 3.0.0 + + + diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java new file mode 100644 index 0000000..8055e42 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java @@ -0,0 +1,54 @@ +package com.muyu.common.kafka.config; + +import com.muyu.common.kafka.constants.KafkaConstants; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.common.serialization.Deserializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +/** + * kafka 消息的消费者 配置类 + */ +@Configuration +public class KafkaConsumerConfig { + + @Bean + public KafkaConsumer kafkaConsumer() { + Map configs = new HashMap<>(); + //kafka服务端的IP和端口,格式:(ip:port) + configs.put("bootstrap.servers", "60.204.221.52:9092"); + //开启consumer的偏移量(offset)自动提交到Kafka + configs.put("enable.auto.commit", true); + //consumer的偏移量(offset) 自动提交的时间间隔,单位毫秒 + configs.put("auto.commit.interval", 5000); + //在Kafka中没有初始化偏移量或者当前偏移量不存在情况 + //earliest, 在偏移量无效的情况下, 自动重置为最早的偏移量 + //latest, 在偏移量无效的情况下, 自动重置为最新的偏移量 + //none, 在偏移量无效的情况下, 抛出异常. + configs.put("auto.offset.reset", "latest"); + //请求阻塞的最大时间(毫秒) + configs.put("fetch.max.wait", 500); + //请求应答的最小字节数 + configs.put("fetch.min.size", 1); + //心跳间隔时间(毫秒) + configs.put("heartbeat-interval", 3000); + //一次调用poll返回的最大记录条数 + configs.put("max.poll.records", 500); + //指定消费组 + configs.put("group.id", KafkaConstants.KafkaGrop); + //指定key使用的反序列化类 + Deserializer keyDeserializer = new StringDeserializer(); + //指定value使用的反序列化类 + Deserializer valueDeserializer = new StringDeserializer(); + //创建Kafka消费者 + KafkaConsumer kafkaConsumer = new KafkaConsumer(configs, keyDeserializer, valueDeserializer); + return kafkaConsumer; + } + +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java new file mode 100644 index 0000000..07b56d3 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java @@ -0,0 +1,45 @@ +package com.muyu.common.kafka.config; + +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.common.serialization.Serializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +/** + * kafka 消息的生产者 配置类 + */ +@Configuration +public class KafkaProviderConfig { + + @Bean + public KafkaProducer kafkaProducer() { + Map configs = new HashMap<>(); + //#kafka服务端的IP和端口,格式:(ip:port) + configs.put("bootstrap.servers", "47.116.173.119:9092"); + //客户端发送服务端失败的重试次数 + configs.put("retries", 2); + //多个记录被发送到同一个分区时,生产者将尝试将记录一起批处理成更少的请求. + //此设置有助于提高客户端和服务器的性能,配置控制默认批量大小(以字节为单位) + configs.put("batch.size", 16384); + //生产者可用于缓冲等待发送到服务器的记录的总内存字节数(以字节为单位) + configs.put("buffer-memory", 33554432); + //生产者producer要求leader节点在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化 + //acks=0,设置为0,则生产者producer将不会等待来自服务器的任何确认.该记录将立即添加到套接字(socket)缓冲区并视为已发送.在这种情况下,无法保证服务器已收到记录,并且重试配置(retries)将不会生效(因为客户端通常不会知道任何故障),每条记录返回的偏移量始终设置为-1. + //acks=1,设置为1,leader节点会把记录写入本地日志,不需要等待所有follower节点完全确认就会立即应答producer.在这种情况下,在follower节点复制前,leader节点确认记录后立即失败的话,记录将会丢失. + //acks=all,acks=-1,leader节点将等待所有同步复制副本完成再确认记录,这保证了只要至少有一个同步复制副本存活,记录就不会丢失. + configs.put("acks", "-1"); + //指定key使用的序列化类 + Serializer keySerializer = new StringSerializer(); + //指定value使用的序列化类 + Serializer valueSerializer = new StringSerializer(); + //创建Kafka生产者 + KafkaProducer kafkaProducer = new KafkaProducer(configs, keySerializer, valueSerializer); + return kafkaProducer; + } + +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java new file mode 100644 index 0000000..b1b7180 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java @@ -0,0 +1,9 @@ +package com.muyu.common.kafka.constants; + + +public class KafkaConstants { + + public final static String KafkaTopic = "carJsons"; + +// public final static String KafkaGrop = "kafka_grop"; +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/kafkaconfig/KafkaConfig.java similarity index 95% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java rename to cloud-common/cloud-common-kafka/src/main/java/com/muyu/kafkaconfig/KafkaConfig.java index 23b395b..393ccbb 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/kafkaconfig/KafkaConfig.java @@ -1,4 +1,4 @@ -package com.muyu.carData.config.kafkaconfig; +package com.muyu.kafkaconfig; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.clients.producer.KafkaProducer; @@ -28,7 +28,7 @@ public class KafkaConfig { //生产者可用于缓冲等待发送到服务器的记录的总内存字节数 configs.put("buffer-memory",3554432); /** - *生产者producer要求leader节点在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化 + * ,用于控制发送记录在服务端的持久化 *acks=0,设置为0,则生产者producer将不会等待来自服务器的任何确认.该记录将立即添加到套接字(socket)缓冲区并视为已发送 * .在这种情况下,无法保证服务器已收到记录,并且重试配置(retries)将不会生效(因为客户端通常不会知道任何故障),每条记录返回的偏移量始终设置为-1. *acks=1,设置为1,leader节点会把记录写入本地日志,不需要等待所有follower节点完全确认就会立即应答producer.在这种情况下, diff --git a/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..24563f7 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.kafkaconfig.KafkaConfig diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysUser.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysUser.java index 7633bca..3efe4cc 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysUser.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysUser.java @@ -87,7 +87,6 @@ public class SysUser extends BaseEntity { * 企业ID */ private Integer firmId; - /** * 所属数据库 */ @@ -145,6 +144,12 @@ public class SysUser extends BaseEntity { */ private Long roleId; + /** + * 公司名称 + * @param userId + */ + private String firmName; + public SysUser (Long userId) { this.userId = userId; } diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 202ab69..7e843a9 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 159.75.188.178:8848 user-name: nacos password: nacos namespace: xxy diff --git a/cloud-modules/cloud-modules-carData/pom.xml b/cloud-modules/cloud-modules-carData/pom.xml index c1ab988..7e7c80b 100644 --- a/cloud-modules/cloud-modules-carData/pom.xml +++ b/cloud-modules/cloud-modules-carData/pom.xml @@ -11,6 +11,10 @@ cloud-modules-carData + + 数据处理模块 + + 17 17 @@ -83,14 +87,18 @@ 2.9.3 - org.apache.kafka - kafka-clients - 3.0.0 + com.muyu + cloud-common-kafka + 3.6.3 org.apache.iotdb iotdb-session 0.13.1 + + com.muyu + cloud-common-rabbit + diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java index 6ee448e..b4c997b 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java @@ -1,11 +1,9 @@ package com.muyu.carData; +import com.muyu.carData.listener.MyListener; import com.muyu.common.security.annotation.EnableMyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; - -import javax.swing.*; /** * @Author:张腾 @@ -19,7 +17,8 @@ import javax.swing.*; public class CarDataApplication { public static void main(String[] args) { - SpringApplication.run(CarDataApplication.class,args); - System.out.println("caused: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;;caused: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;"); + SpringApplication application = new SpringApplication(CarDataApplication.class); + application.addListeners(new MyListener()); + application.run(args); } } diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/annotation/IoTTableName.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/annotation/IoTTableName.java deleted file mode 100644 index 64b4a1f..0000000 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/annotation/IoTTableName.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.muyu.carData.annotation; - -import java.lang.annotation.*; - -/** - * @Author:张腾 - * @Package:com.muyu.carData.annotation - * @Project:cloud-server-8 - * @name:IoTTableName - * @Date:2024/9/27 19:29 - */ -@Documented -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE}) -public @interface IoTTableName { - - String value() default ""; -} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/constract/IoTDBTableParam.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/constract/IoTDBTableParam.java deleted file mode 100644 index e03e8ed..0000000 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/constract/IoTDBTableParam.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.muyu.carData.constract; - -/** - * @Author:张腾 - * @Package:com.muyu.carData.constract - * @Project:cloud-server-8 - * @name:IoTDBTableParam - * @Date:2024/9/27 20:02 - */ -public class IoTDBTableParam { - - public static final String SYSLOG_IOT_TABLE = "student"; -} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java index 7e6fcb9..8d0aecc 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java @@ -15,7 +15,7 @@ import org.springframework.stereotype.Component; import java.time.Duration; import java.util.Collection; -/** +/**卡夫卡消费者 * @Author:张腾 * @Package:com.muyu.carData.consumer * @Project:cloud-server-8 @@ -29,7 +29,7 @@ public class MyKafkaConsumer implements InitializingBean { @Autowired private KafkaConsumer kafkaConsumer; - private final String topicName = "test"; + private final String topicName = "carJsons"; @Override public void afterPropertiesSet() throws Exception { @@ -43,13 +43,14 @@ public class MyKafkaConsumer implements InitializingBean { for (ConsumerRecord consumerRecord : consumerRecords) { //从consumerRecord中获取消费数据 String value = consumerRecord.value(); - log.info("从Kafka中消费的原始数据:{}",value); - //转换为java对象 - Student stu = JSONUtil.toBean(value, Student.class); - log.info("消费数据转换为Java对象:{}",stu); + log.info("从Kafka中消费的原始数据===============>>:{}",value); } } }); thread.start(); + + log.info("启动线程结束监听topic:{}",topicName); + + } } diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/CacheController.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/CacheController.java similarity index 97% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/CacheController.java rename to cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/CacheController.java index 436c63f..f2d2c53 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/CacheController.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/CacheController.java @@ -1,4 +1,4 @@ -package com.muyu.carData.testcontroller; +package com.muyu.carData.controller; import com.github.benmanes.caffeine.cache.Cache; import com.muyu.carData.config.cacheconfig.CaffeineConfig; diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/IotDBController.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/IotDBController.java similarity index 97% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/IotDBController.java rename to cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/IotDBController.java index d93c8d3..0becba4 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/IotDBController.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/IotDBController.java @@ -1,4 +1,4 @@ -package com.muyu.carData.testcontroller; +package com.muyu.carData.controller; import com.muyu.carData.config.lotdbconfig.IotDBSessionConfig; import lombok.extern.log4j.Log4j2; @@ -44,11 +44,13 @@ public class IotDBController { @GetMapping("/insertData/{insertSize}/{count}") public String insert(@PathVariable(name = "insertSize") int insertSize,@PathVariable(name = "count") int count) throws IoTDBConnectionException, StatementExecutionException { Session session = iotDBSessionConfig.iotSession(); + //schemaList 属性及类型 List schemaList = new ArrayList<>(); schemaList.add(new MeasurementSchema("id", TSDataType.INT32)); schemaList.add(new MeasurementSchema("name", TSDataType.TEXT)); schemaList.add(new MeasurementSchema("sex", TSDataType.TEXT)); + //tablet 封装数据 Tablet tablet = new Tablet("root.yang.baling", schemaList); //以当前时间戳作为插入的起始时间戳 diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/KafkaProducerController.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/KafkaProducerController.java similarity index 68% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/KafkaProducerController.java rename to cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/KafkaProducerController.java index 2dc6bb9..b167ef7 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/KafkaProducerController.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/KafkaProducerController.java @@ -1,7 +1,6 @@ -package com.muyu.carData.testcontroller; +package com.muyu.carData.controller; import com.alibaba.fastjson.JSONObject; -import com.muyu.carData.pojo.Student; import lombok.extern.log4j.Log4j2; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; @@ -25,21 +24,15 @@ public class KafkaProducerController { @Autowired private KafkaProducer kafkaProducer; - private final String topicName = "test"; + private final String topicName = "carJsons"; - @GetMapping("/produceTest") - public String produceTest() { + @GetMapping("/producer") + public String produceTest(JSONObject data) { try { - Student stu = Student.builder().id(2) - .name("杨闪闪") - .sex("男") - .build(); - String stuStr = JSONObject.toJSONString(stu); log.info("Topic:{}", topicName); - log.info("Java对象:{}",stu); - log.info("转换为JSON:{}",stuStr); + log.info("转换为JSON:{}",data); //使用KafkaProducer发送消息 - ProducerRecord stringProducerRecord = new ProducerRecord<>(topicName, stuStr); + ProducerRecord stringProducerRecord = new ProducerRecord(topicName, data); kafkaProducer.send(stringProducerRecord); }catch (Exception e){ log.error("Producer写入Topic异常,异常信息是:{}",e.getMessage()); @@ -47,4 +40,6 @@ public class KafkaProducerController { return "消息发送成功"; } + + } diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/domain/IoTDBRecord.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/domain/IoTDBRecord.java deleted file mode 100644 index 00af674..0000000 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/domain/IoTDBRecord.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.muyu.carData.domain; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @Author:张腾 - * @Package:com.muyu.carData.domain - * @Project:cloud-server-8 - * @name:IoTDBRecord - * @Date:2024/9/27 19:25 - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class IoTDBRecord { - - /** - * 节点路径 - */ - private String deviceId; - - /** - * 时间戳 - */ - private long time = System.currentTimeMillis(); - - /** - * 属性 - */ - private List measurementList; - - /** - * 属性值 - */ - private List valueList; - - /** - * 数据类型 - */ - private List typeList; -} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/event/EsSaveEvent.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/event/EsSaveEvent.java new file mode 100644 index 0000000..f4d689f --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/event/EsSaveEvent.java @@ -0,0 +1,22 @@ +package com.muyu.carData.event; + +import com.alibaba.fastjson.JSONObject; +import org.springframework.context.ApplicationEvent; + +/**自定义事件 + * @Author:张腾 + * @Package:com.muyu.carData.event + * @Project:cloud-server-8 + * @name:EsSaveEvent + * @Date:2024/9/29 21:15 + */ +public class EsSaveEvent extends ApplicationEvent { + + private JSONObject data; + + + public EsSaveEvent(JSONObject source) { + super(source); + this.data = source; + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/interfaces/IoTDBRecordable.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/interfaces/IoTDBRecordable.java deleted file mode 100644 index 1a1500c..0000000 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/interfaces/IoTDBRecordable.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.muyu.carData.interfaces; - -import com.muyu.carData.annotation.IoTTableName; -import com.muyu.carData.domain.IoTDBRecord; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.ArrayList; - -/** - * @Author:张腾 - * @Package:com.muyu.carData.interfaces - * @Project:cloud-server-8 - * @name:IoTDBRecordable - * @Date:2024/9/27 19:22 - * iot基类 - */ -public interface IoTDBRecordable { - - Logger logger = LoggerFactory.getLogger(IoTDBRecordable.class); - - /** - * 数据载入方法 - * @return Record - */ - default IoTDBRecord toRecord() throws Exception { - IoTDBRecord ioTDBRecord = new IoTDBRecord(); - Object getIoTDBTime = this.getClass().getMethod("getIoTDBTime").invoke(this); - if (null != getIoTDBTime){ - ioTDBRecord.setTime((Long) getIoTDBTime); - } - Class aClass = this.getClass(); - IoTTableName name = this.getClass().getAnnotation(IoTTableName.class); - ioTDBRecord.setDeviceId(name.value()); - Field[] declaredFields = aClass.getDeclaredFields(); - ArrayList measurements = new ArrayList<>(); - ArrayList records = new ArrayList<>(); - ArrayList types = new ArrayList<>(); - for (Field declaredField : declaredFields) { - measurements.add(declaredField.getName()); - String methodNamePro = declaredField.getName().substring(0, 1).toUpperCase() + declaredField.getName().substring(1); - Method methodName = this.getClass().getMethod("get" + methodNamePro); - records.add(methodName.invoke(this)); - types.add(methodName.getReturnType().getName()); - } - ioTDBRecord.setMeasurementList(measurements); - ioTDBRecord.setValueList(records); - ioTDBRecord.setTypeList(types); - return ioTDBRecord; - } -} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/CustomEventListener.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/CustomEventListener.java new file mode 100644 index 0000000..4d63af0 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/CustomEventListener.java @@ -0,0 +1,22 @@ +package com.muyu.carData.listener; + +import com.muyu.carData.event.EsSaveEvent; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +/** + * @Author:张腾 + * @Package:com.muyu.carData.listener + * @Project:cloud-server-8 + * @name:CustomEventListener + * @Date:2024/9/29 23:49 + */ +@Component +public class CustomEventListener { + + @EventListener + public void handMyEvent(EsSaveEvent event){ + //处理事件详情 + + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/MyListener.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/MyListener.java new file mode 100644 index 0000000..5bfcb26 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/MyListener.java @@ -0,0 +1,20 @@ +package com.muyu.carData.listener; + +import com.muyu.carData.event.EsSaveEvent; +import lombok.extern.log4j.Log4j2; +import org.springframework.context.ApplicationListener; + +/**自定义监听器 + * @Author:张腾 + * @Package:com.muyu.carData.listener + * @Project:cloud-server-8 + * @name:MyListener + * @Date:2024/9/29 21:18 + */ +@Log4j2 +public class MyListener implements ApplicationListener { + @Override + public void onApplicationEvent(EsSaveEvent event) { + log.info("监听到自定义事件........"); + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/pulisher/CustomEventPublisher.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/pulisher/CustomEventPublisher.java new file mode 100644 index 0000000..2a32391 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/pulisher/CustomEventPublisher.java @@ -0,0 +1,29 @@ +package com.muyu.carData.pulisher; + +import com.alibaba.fastjson.JSONObject; +import com.muyu.carData.event.EsSaveEvent; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Component; + +/**事件发布测试 + * @Author:张腾 + * @Package:com.muyu.carData.pulisher + * @Project:cloud-server-8 + * @name:CustomEventPublisher + * @Date:2024/9/29 23:51 + */ +@Log4j2 +@Component +@AllArgsConstructor +public class CustomEventPublisher { + + private ApplicationEventPublisher applicationEventPublisher; + + public void publish(JSONObject data){ + EsSaveEvent esSaveEvent = new EsSaveEvent(data); + applicationEventPublisher.publishEvent(esSaveEvent); + log.info("事件发布成功 - 消息是:{}",data); + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-carData/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..8bc6afd --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/resources/bootstrap.yml @@ -0,0 +1,63 @@ +# Tomcat +server: + port: 9702 + +# nacos线上地址 +nacos: + addr: 159.75.188.178:8848 + user-name: nacos + password: nacos + namespace: eight +# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all +# Spring +spring: + iotdb: + username: root + password: root + ip: 60.204.221.52 + port: 6667 + maxSize: 100 + fetchSize: 10000 + main: + allow-bean-definition-overriding: true + application: + # 应用名称 + name: cloud-carData + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # xxl-job 配置文件 + - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # rabbit 配置文件 + - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.system.mapper: DEBUG diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml index 2d3421d..68857c5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml @@ -54,5 +54,9 @@ fastjson 1.2.83 + + com.muyu + cloud-common-system + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/CarInformation.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/CarInformation.java index d5ac309..313f32c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/CarInformation.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/CarInformation.java @@ -44,7 +44,7 @@ public class CarInformation { */ // @TableName(value = "car_information_VIN") @TableField(value = "car_information_VIN") - private String carInformationVin; + private String carInformationVIN; /** * 车牌号 */ @@ -133,7 +133,7 @@ public class CarInformation { public static CarInformation carInformationAddBuilder(CarInformationAddReq carInformation) { return CarInformation.builder() - .carInformationVin(carInformation.getCarInformationVin()) + .carInformationVIN(carInformation.getCarInformationVIN()) .carInformationLicensePlate(carInformation.getCarInformationLicensePlate()) .carInformationBrand(carInformation.getCarInformationBrand()) .carInformationColor(carInformation.getCarInformationColor()) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java new file mode 100644 index 0000000..eb5d0b7 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/Firm.java @@ -0,0 +1,40 @@ +package com.muyu.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 企业名称 + * @Author:weiran + * @Package:com.muyu.firmmanage.domain + * @Project:cloud-server-8 + * @name:Firm + * @Date:2024/9/27 12:29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class Firm { + + /** + * 企业ID + */ + @TableId(value = "firm_id") + private Long firmId; + /** + * 企业名称 + */ + @TableField(exist = false) + private String firmName; + /** + * 数据库名称 + */ + private String databaseName; + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/SysUser.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/SysUser.java new file mode 100644 index 0000000..64014c2 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/SysUser.java @@ -0,0 +1,119 @@ +package com.muyu.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * 用户信息 + * @Author:weiran + * @Package:com.muyu.firmmanage.domain + * @Project:cloud-server-8 + * @name:SysUser + * @Date:2024/9/28 22:37 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@Tag(name = "用户信息") +@TableName("sys_user") +public class SysUser extends BaseEntity { + /** + * 用户ID + */ + @TableId(value = "user_id") + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户类型(00系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + private String email; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private Integer sex; + + /** + * 头像地址 + */ + private String avatar; + + /** + * 密码 + */ + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private Integer status; + + /** + * 删除标志(0代表存在 2代表删除) + */ + private String delFlag; + + /** + * 最后登录IP + */ + private String loginIp; + + /** + * 最后登录时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date loginDate; + + /** + * 数据库名称 + */ + private String databaseName; + + /** + * 企业ID + */ + private Long firmId; + /** + * 企业名称 + */ + @TableField(exist = false) + private String firmName; +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/CarInformationAddReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/CarInformationAddReq.java index 78ff170..ac596f9 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/CarInformationAddReq.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/CarInformationAddReq.java @@ -21,7 +21,7 @@ public class CarInformationAddReq { /** * 车辆唯一VIN */ - private String carInformationVin; + private String carInformationVIN; /** * 车牌号 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmListReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmListReq.java new file mode 100644 index 0000000..ccc7e0a --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/req/FirmListReq.java @@ -0,0 +1,37 @@ +package com.muyu.domain.req; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 公司信息请求对象 + * @Author:weiran + * @Package:com.muyu.firmmanage.domain.req + * @Project:cloud-server-8 + * @name:FirmListReq + * @Date:2024/9/27 19:19 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "公司信息请求对象",description = "公司信息请求对象") +public class FirmListReq { + + /** + * 公司名称 + */ + private String firmName; + /** + * 页码,从1开始 + */ + private Integer pageNum=1; + /** + * 每页大小 + */ + private Integer pageSize=10; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java new file mode 100644 index 0000000..2f64e8b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmListResp.java @@ -0,0 +1,138 @@ +package com.muyu.domain.resp; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.domain.SysUser; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 企业信息响应对象 + * @Author:weiran + * @Package:com.muyu.firmmanage.domain.resp + * @Project:cloud-server-8 + * @name:FirmListResp + * @Date:2024/9/27 19:33 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name="企业信息响应对象",description = "企业信息响应对象") +public class FirmListResp { + /** + * 用户ID + */ + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户类型(00系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + private String email; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private Integer sex; + + /** + * 头像地址 + */ + private String avatar; + + /** + * 密码 + */ + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private Integer status; + + /** + * 删除标志(0代表存在 2代表删除) + */ + private String delFlag; + + /** + * 最后登录IP + */ + private String loginIp; + + /** + * 最后登录时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date loginDate; + + /** + * 数据库名称 + */ + private String databaseName; + + /** + * 企业ID + */ + private Long firmId; + /** + * 企业名称 + */ + @TableField(exist = false) + private String firmName; + + /** + * 数据库对象构建为返回结果对象 + */ + public static FirmListResp firmListResp(SysUser sysUser){ + return FirmListResp.builder() + .userId(sysUser.getUserId()) + .deptId(sysUser.getDeptId()) + .userName(sysUser.getUserName()) + .nickName(sysUser.getNickName()) + .userType((sysUser.getUserType())) + .email(sysUser.getEmail()) + .phonenumber(sysUser.getPhonenumber()) + .sex(sysUser.getSex()) + .avatar(sysUser.getAvatar()) + .password(sysUser.getPassword()) + .status(sysUser.getStatus()) + .delFlag(sysUser.getDelFlag()) + .loginDate(sysUser.getLoginDate()) + .databaseName(sysUser.getDatabaseName()) + .firmId(sysUser.getFirmId()) + .build(); + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmTotalListResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmTotalListResp.java new file mode 100644 index 0000000..e3e1e84 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/resp/FirmTotalListResp.java @@ -0,0 +1,36 @@ +package com.muyu.domain.resp; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 公司数据总数响应对象 + * @Author:weiran + * @Package:com.muyu.firmmanage.domain.resp.firmlist + * @Project:cloud-server-8 + * @name:FirmTotalListResp + * @Date:2024/9/27 19:42 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "公司数据总数列表",description = "数据总数响应") +public class FirmTotalListResp { + + private List firmListRespList; + + private long total; + + public static FirmTotalListResp firmTotalListResp(List firmListRespList,long toal){ + FirmTotalListResp firmTotalListResp = new FirmTotalListResp(); + firmTotalListResp.setFirmListRespList(firmListRespList); + firmTotalListResp.setTotal(toal); + return firmTotalListResp; + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmManageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmManageController.java new file mode 100644 index 0000000..47f9004 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/controller/FirmManageController.java @@ -0,0 +1,47 @@ +package com.muyu.server.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.domain.req.FirmListReq; +import com.muyu.domain.resp.FirmTotalListResp; +import com.muyu.server.service.FirmManageService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 企业信息控制层 + * @Author:weiran + * @Package:com.muyu.firmmanage.controller + * @Project:cloud-server-8 + * @name:FirmManageController + * @Date:2024/9/27 12:27 + */ +@RestController +@RequestMapping("/firmmanage") +@Tag(name = "公司相关事务",description = "公司相关事务操作") +public class FirmManageController { + + @Autowired + private FirmManageService firmManageService; + + + /** + * 公司列表信息展示 + * @param firmListReq + * @return + */ + @PostMapping("/firmmessageList") + @Operation(summary = "公司信息列表展示",description = "展示公司信息的列表") + public Result firmmessageList(@Validated @RequestBody FirmListReq firmListReq){ + FirmTotalListResp firmTotalListResp = firmManageService.firmmessageList(firmListReq); + return Result.success(firmTotalListResp); + } + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmManageMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmManageMapper.java new file mode 100644 index 0000000..ed33d65 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmManageMapper.java @@ -0,0 +1,23 @@ +package com.muyu.server.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.domain.Firm; +import com.muyu.domain.SysUser; +import com.muyu.domain.req.FirmListReq; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 公司+员工持久层 + * @Author:weiran + * @Package:com.muyu.firmmanage.mapper + * @Project:cloud-server-8 + * @name:FirmManageMapper + * @Date:2024/9/27 12:28 + */ +@Mapper +public interface FirmManageMapper extends MPJBaseMapper { + + List firmmessageList(FirmListReq firmListReq); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmMapper.java new file mode 100644 index 0000000..a1ee530 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/mapper/FirmMapper.java @@ -0,0 +1,17 @@ +package com.muyu.server.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.domain.Firm; +import org.apache.ibatis.annotations.Mapper; + +/** + * 公司表持久层 + * @Author:weiran + * @Package:com.muyu.firmmanage.mapper + * @Project:cloud-server-8 + * @name:FirmMapper + * @Date:2024/9/29 16:56 + */ +@Mapper +public interface FirmMapper extends MPJBaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java new file mode 100644 index 0000000..1831e27 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmManageService.java @@ -0,0 +1,26 @@ +package com.muyu.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.SysUser; +import com.muyu.domain.req.FirmListReq; +import com.muyu.domain.resp.FirmTotalListResp; + +import java.util.List; + +/** + * 公司+员工业务层 + * @Author:weiran + * @Package:com.muyu.firmmanage.service + * @Project:cloud-server-8 + * @name:FirmManageService + * @Date:2024/9/27 12:28 + */ +public interface FirmManageService extends IService { + + /** + * 公司列表信息展示 + * @param firmListReq + * @return + */ + FirmTotalListResp firmmessageList(FirmListReq firmListReq); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmService.java new file mode 100644 index 0000000..3483947 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/FirmService.java @@ -0,0 +1,21 @@ +package com.muyu.server.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.Firm; + +/** + * 公司业务层 + * @Author:weiran + * @Package:com.muyu.firmmanage.service + * @Project:cloud-server-8 + * @name:FirmService + * @Date:2024/9/29 16:57 + */ +public interface FirmService extends IService { + /** + * 查询公司数目 + * @return + */ + long findcount(); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java index 5fe85ee..372800d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java @@ -65,7 +65,7 @@ public class CarInformationServiceImpl .leftJoin(CarType.class, CarType::getCarTypeId, CarInformation::getCarInformationType) .eq(StringUtils.isNotEmpty(carInformationListReq.getCarInformationVIN()) - ,CarInformation::getCarInformationVin + ,CarInformation::getCarInformationVIN , carInformationListReq.getCarInformationVIN()) .eq(StringUtils.isNotNull(carInformationListReq.getCarTypeId()) ,CarType::getCarTypeId, carInformationListReq.getCarTypeId()) @@ -76,7 +76,7 @@ public class CarInformationServiceImpl ,CarInformation::getCarInformationState , carInformationListReq.getCarInformationState()) .like(StringUtils.isNotEmpty(carInformationListReq.getCarInformationVIN()) - ,CarInformation::getCarInformationVin + ,CarInformation::getCarInformationVIN , carInformationListReq.getCarInformationVIN()) .eq(StringUtils.isNotEmpty( carInformationListReq.getCarInformationMotorModel()) ,CarInformation::getCarInformationMotorModel @@ -148,4 +148,5 @@ public class CarInformationServiceImpl }); return carInformationResps; } + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultLogServiceImpl.java index 4e7ac48..3ba09e9 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultLogServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultLogServiceImpl.java @@ -47,7 +47,7 @@ public class FaultLogServiceImpl extends ServiceImpl i FaultLog::getStartwarningTime, FaultLog::getEndwarningTime) .select(FaultCode::getFaultcodeNumber) - .select(CarInformation::getCarInformationVin) + .select(CarInformation::getCarInformationVIN) .leftJoin(FaultCode.class,FaultCode::getFaultcodeId,FaultLog::getFaultcodeId) .leftJoin(CarInformation.class,CarInformation::getCarInformationId,FaultLog::getCarInformationId) .eq(StringUtils.isNotEmpty(faultLogListReq.getCarVin()), diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultRuleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultRuleServiceImpl.java index b8d530e..3502d65 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultRuleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FaultRuleServiceImpl.java @@ -12,6 +12,7 @@ import com.muyu.server.mapper.CarFenceMapper; import com.muyu.server.mapper.CarInformationMapper; import com.muyu.server.mapper.FaultConditionMapper; import com.muyu.server.mapper.FaultRuleMapper; +import com.muyu.server.service.CarInformationService; import com.muyu.server.service.FaultRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +34,8 @@ import java.util.List; @Service public class FaultRuleServiceImpl extends ServiceImpl implements FaultRuleService { + @Autowired + private CarInformationService carInformationService; @Autowired private CarInformationMapper carInformationMapper; @Autowired @@ -49,7 +52,7 @@ public class FaultRuleServiceImpl extends ServiceImpl carInformationList = carInformationMapper.selectList( new LambdaQueryWrapper() - .eq(CarInformation::getCarInformationVin, carFaultRule.getVin())); + .eq(CarInformation::getCarInformationVIN, carFaultRule.getVin())); //根据车辆类型,查询表获取对应的类型的故障规则 Integer carInformationType = null; for (CarInformation carInformation : carInformationList) { diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java new file mode 100644 index 0000000..e4f3501 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmManageServiceImpl.java @@ -0,0 +1,53 @@ +package com.muyu.server.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.domain.Firm; +import com.muyu.domain.SysUser; +import com.muyu.domain.req.FirmListReq; +import com.muyu.domain.resp.FirmListResp; +import com.muyu.domain.resp.FirmTotalListResp; +import com.muyu.server.mapper.FirmManageMapper; +import com.muyu.server.service.FirmManageService; +import com.muyu.server.service.FirmService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 公司+员工业务实现层 + * @Author:weiran + * @Package:com.muyu.firmmanage.service.impl + * @Project:cloud-server-8 + * @name:FirmManageServiceImpl + * @Date:2024/9/27 12:28 + */ +@Service +public class FirmManageServiceImpl extends ServiceImpl implements FirmManageService { + @Autowired + private FirmManageMapper firmManageMapper; + @Autowired + private FirmService firmService; + /** + * 公司列表信息展示 + * @param firmListReq + * @return + */ + @Override + public FirmTotalListResp firmmessageList(FirmListReq firmListReq) { + long findcount = firmService.findcount(); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(SysUser.class) + .selectAll(Firm.class) + .leftJoin(Firm.class,Firm::getFirmId,SysUser::getFirmId) + .eq(StringUtils.isNotEmpty(firmListReq.getFirmName()), + Firm::getFirmName, firmListReq.getFirmName()); + wrapper.last("LIMIT "+((firmListReq.getPageNum()-1)*firmListReq.getPageSize())+","+firmListReq.getPageSize()); + List firmListResps = firmManageMapper.selectJoinList(FirmListResp.class, wrapper); + return FirmTotalListResp.firmTotalListResp(firmListResps,findcount); + + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmServiceImpl.java new file mode 100644 index 0000000..0ba35c7 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/server/service/impl/FirmServiceImpl.java @@ -0,0 +1,32 @@ +package com.muyu.server.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.domain.Firm; +import com.muyu.server.mapper.FirmMapper; +import com.muyu.server.service.FirmService; +import org.springframework.stereotype.Service; + +/** + * 公司业务实现层 + * @Author:weiran + * @Package:com.muyu.firmmanage.service.impl + * @Project:cloud-server-8 + * @name:FirmServiceImpl + * @Date:2024/9/29 16:57 + */ +@Service +public class FirmServiceImpl extends ServiceImpl implements FirmService { + + /** + * 查询公司数目 + * @return + */ + @Override + public long findcount() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + long count = this.count(queryWrapper); + return count; + + } +} diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index b2d27b0..b7db4c1 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 159.75.188.178:8848 user-name: nacos password: nacos namespace: xxy diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index d00587b..3bfd19c 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 159.75.188.178:8848 user-name: nacos password: nacos namespace: xxy diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java index fa92973..6775a94 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java @@ -142,4 +142,11 @@ public interface SysUserMapper extends BaseMapper { List companyList(); + /** + * 添加公司名称 + * @param firmName + * @param datbaseName + * @return + */ + Integer insertFirm(@Param("firmName") String firmName, @Param("datbaseName") String datbaseName); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/DataBaseCreator.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/DataBaseCreator.java new file mode 100644 index 0000000..47b2206 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/DataBaseCreator.java @@ -0,0 +1,16 @@ +package com.muyu.system.service; + +import com.muyu.common.system.domain.SysUser; + +/** + * @Author:weiran + * @Package:com.muyu.system.service + * @Project:cloud-server-8 + * @name:DataBaseCreator + * @Date:2024/9/26 20:40 + */ +public interface DataBaseCreator { + + + String createDatbase(SysUser user); +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/DataBaseCreatorImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/DataBaseCreatorImpl.java new file mode 100644 index 0000000..850d44d --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/DataBaseCreatorImpl.java @@ -0,0 +1,49 @@ +package com.muyu.system.service.impl; + +import cn.hutool.core.util.RandomUtil; +import com.muyu.common.system.domain.SysUser; +import com.muyu.system.service.DataBaseCreator; +import org.springframework.stereotype.Service; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.Statement; + +/** + * @Author:weiran + * @Package:com.muyu.system.service.impl + * @Project:cloud-server-8 + * @name:DataBaseCreatorImpl + * @Date:2024/9/26 20:40 + */ +@Service +public class DataBaseCreatorImpl implements DataBaseCreator { + + + private static final String DB_URL="jdbc:mysql://159.75.188.178:3306?useSSL=false"; + private static final String USER="root"; + private static final String PASS="bwie-8666"; + + + @Override + public String createDatbase(SysUser user) { + try { + Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); + Statement statement = conn.createStatement(); + String datbaseName="company"+RandomUtil.randomNumbers(5); + //创建数据库 + String sqlCreateDatabase ="CREATE DATABASE IF NOT EXISTS "+datbaseName; + String sqlUseDatabase="USE "+datbaseName; + String sqlCreateTable="CREATE TABLE user ("+ + "user_id INT AUTO_INCREMENT PRIMARY KEY,"+ + "user_name VARCHAR(50) NOT NULL )"; + statement.execute(sqlCreateDatabase); + statement.execute(sqlUseDatabase); + statement.execute(sqlCreateTable); + return datbaseName; + }catch (Exception e){ + e.printStackTrace(); + throw new RuntimeException("数据库创建失败"); + } + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java index 7e17f2c..fd58fb7 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java @@ -14,6 +14,7 @@ import com.muyu.system.domain.SysPost; import com.muyu.system.domain.SysUserPost; import com.muyu.system.domain.SysUserRole; import com.muyu.system.mapper.*; +import com.muyu.system.service.DataBaseCreator; import com.muyu.system.service.SysUserService; import com.muyu.system.service.SysConfigService; import jakarta.validation.Validator; @@ -50,6 +51,8 @@ public class SysUserServiceImpl extends ServiceImpl impl private SysUserPostMapper userPostMapper; @Autowired private SysConfigService configService; + @Autowired + private DataBaseCreator baseCreator; /** * 根据条件分页查询用户列表 @@ -254,7 +257,24 @@ public class SysUserServiceImpl extends ServiceImpl impl */ @Override public boolean registerUser (SysUser user) { - return userMapper.insertUser(user) > 0; + //根据新注册的用户创建对应数据库 + String datbaseName = baseCreator.createDatbase(user); + //添加公司名称 + userMapper.insertFirm(user.getFirmName(),datbaseName); + Integer firmId = user.getFirmId(); + user.setFirmId(firmId); + //添加用户表 + int i = userMapper.insertUser(user); + List userList = userMapper.selectUserList(user); + Long userId = userList.get(0).getUserId(); + ArrayList list = new ArrayList<>(); + //将用户和角色进行关联 + SysUserRole userRole = new SysUserRole(); + userRole.setUserId(userId); + userRole.setRoleId(2L); + list.add(userRole); + userRoleMapper.batchUserRole(list); + return i > 0; } /** diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index ac12bee..2576c29 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 159.75.188.178:8848 user-name: nacos password: nacos namespace: xxy diff --git a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml index 6ea2ddd..16baeea 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -222,6 +222,11 @@ sysdate() ) + + INSERT INTO `eight`.`firm` + (`firm_id`, `firm_name`, `database_name`) VALUES + (0, #{firmName}, #{datbaseName}); + update sys_user diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index a4fdef3..5fca758 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 159.75.188.178:8848 user-name: nacos password: nacos namespace: xxy diff --git a/pom.xml b/pom.xml index c71200f..081c4fa 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ muyu http://www.muyu.vip - 若依微服务系统 + 智能车联系统 3.6.3