diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index ce1fb2d..910ec21 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: 106.54.193.225:8848 user-name: nacos password: nacos namespace: one-saas diff --git a/cloud-common/cloud-common-core/pom.xml b/cloud-common/cloud-common-core/pom.xml index be06f0a..9654ee7 100644 --- a/cloud-common/cloud-common-core/pom.xml +++ b/cloud-common/cloud-common-core/pom.xml @@ -168,6 +168,11 @@ cn.hutool hutool-all + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.2 + diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java index e750583..297243e 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/ip/IpUtils.java @@ -58,7 +58,7 @@ public class IpUtils { ip = request.getRemoteAddr(); } - return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); + return "0:0:0:0:0:0:0:1".equals(ip) ? "106.54.193.225" : getMultistageReverseProxyIp(ip); } /** @@ -70,7 +70,7 @@ public class IpUtils { */ public static boolean internalIp (String ip) { byte[] addr = textToNumericFormatV4(ip); - return internalIp(addr) || "127.0.0.1".equals(ip); + return internalIp(addr) || "106.54.193.225".equals(ip); } /** @@ -197,7 +197,7 @@ public class IpUtils { return InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { } - return "127.0.0.1"; + return "106.54.193.225"; } /** diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java index 2ceb282..976d688 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java @@ -13,7 +13,7 @@ public class DatasourceContent { public final static String PASSWORD = "bawei2112A"; - public final static String IP = "127.0.0.1"; + public final static String IP = "106.54.193.225"; public final static Integer PORT = 3306; } diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index aa98013..cb4e64c 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: 106.54.193.225:8848 user-name: nacos password: nacos namespace: one-saas @@ -50,7 +50,7 @@ spring: eager: true transport: # 控制台地址 - dashboard: 127.0.0.1:8718 + dashboard: 106.54.193.225:8718 # nacos配置持久化 datasource: ds1: diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml index f4097e8..d466843 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml @@ -1,10 +1,10 @@ # Tomcat server: - port: 9702 + port: 10022 # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 106.54.193.225:8848 user-name: nacos password: nacos namespace: one diff --git a/cloud-modules/cloud-modules-car-gateway/pom.xml b/cloud-modules/cloud-modules-car-gateway/pom.xml new file mode 100644 index 0000000..2445efc --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-modules-car-gateway + + + 17 + 17 + UTF-8 + + + + com.muyu + cloud-common-core + + + com.muyu + cloud-common-security + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + + + + + + + com.muyu + cloud-common-api-doc + + + + + + + + + + + + + + com.aliyun + ecs20140526 + 5.1.8 + + + com.aliyun + tea-openapi + 0.3.2 + + + com.aliyun + tea-console + 0.0.1 + + + com.aliyun + tea-util + 0.2.21 + + + + diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CarGatewayApplication.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CarGatewayApplication.java new file mode 100644 index 0000000..e9109de --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CarGatewayApplication.java @@ -0,0 +1,23 @@ +package com.muyu.cargateway; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:00 + * @ Version:1.0 + * @ Description:故障启动类 + * @author Lenovo + */ +@EnableCustomConfig +@EnableFeignClients +@SpringBootApplication +public class CarGatewayApplication { + public static void main(String[] args) { + SpringApplication.run(CarGatewayApplication.class, args); + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java new file mode 100644 index 0000000..545d937 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java @@ -0,0 +1,89 @@ +package com.muyu.cargateway.cargatewaytest; + +import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.*; +import com.aliyun.tea.TeaException; +import com.aliyun.teaopenapi.models.Config; +import com.aliyun.teautil.models.RuntimeOptions; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-28-21:20 + * @ Version:1.0 + * @ Description:删除实例 + * @author Lenovo + */ +@Log4j2 +@Component +public class DeleteSample implements DisposableBean { + + public static Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + Config config = new Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId("LTAI5tDH3FyRx4PRr6anx2TL") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("xdQnX2tDattY50raNkUWmHzE2tondP"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; + return new Client(config); + } + public static void deleteSample() throws Exception { + Client client = DeleteSample.createClient(); + DescribeInstancesRequest attributeRequest = new DescribeInstancesRequest(); + attributeRequest.setRegionId("cn-shanghai"); + + RuntimeOptions runtimeOptions = new RuntimeOptions(); + + DescribeInstancesResponse instancesWithOptions = client.describeInstancesWithOptions(attributeRequest, runtimeOptions); + ArrayList list = new ArrayList<>(); + DescribeInstancesResponseBody body = instancesWithOptions.getBody(); + for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.instances.instance) { + list.add(instance.getInstanceId()); + } + log.info("list:"+list); + DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest(); + deleteInstancesRequest.setRegionId("cn-shanghai") + .setDryRun(false) + .setForce(true) + .setTerminateSubscription(true) + .setInstanceId(list); + + RuntimeOptions runtime = new RuntimeOptions(); + try{ + client.deleteInstancesWithOptions(deleteInstancesRequest, runtime); + }catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + } + @Override + public void destroy(){ + try { + log.info("删除实例方法"); + deleteSample(); + } catch (Exception e) { + log.info("删除实例失败"); + throw new RuntimeException(e); + } + log.info("删除实例成功"); + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/Sample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/Sample.java new file mode 100644 index 0000000..3ebe6bb --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/Sample.java @@ -0,0 +1,107 @@ +package com.muyu.cargateway.cargatewaytest; + +import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.RunInstancesRequest; +import com.aliyun.tea.TeaException; +import com.aliyun.teaopenapi.models.Config; +import com.aliyun.teautil.Common; +import com.aliyun.teautil.models.RuntimeOptions; +import lombok.extern.log4j.Log4j2; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-28-21:10 + * @ Version:1.0 + * @ Description:调用ali的类 + * @author Lenovo + */ +@Log4j2 +@Component +public class Sample implements ApplicationRunner { + + public static Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + Config config = new Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId("LTAI5tDH3FyRx4PRr6anx2TL") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("xdQnX2tDattY50raNkUWmHzE2tondP"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; + return new Client(config); + } + public static void generateInstance() throws Exception { + Client client = Sample.createClient(); + RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new RunInstancesRequest.RunInstancesRequestSystemDisk(); + //设置系统盘的大小为40GiB + systemDisk.setSize("40"); + //设置系统盘类型为cloud_essd + systemDisk.setCategory("cloud_essd"); + + // 创建创建实例请求对象并设置参数 + + RunInstancesRequest runInstancesRequest = new RunInstancesRequest() + // 设置地域ID + .setRegionId("cn-shanghai") + // 设置镜像ID + .setImageId("m-uf65fvle9qseu9jo5jl3") + // 设置实例规格类型 + .setInstanceType("ecs.t6-c1m1.large") + // 设置安全组ID + .setSecurityGroupId("sg-uf642d5u4ja5gsiitx8y") + // 设置虚拟交换机ID + .setVSwitchId("vsw-uf66lifrkhxqc94xi06v3") + // 设置实例名称 + .setInstanceName("server-mqtt") + // 设置付费类型 按量付费 + .setInstanceChargeType("PostPaid") + // 设置系统盘配置 + .setSystemDisk(systemDisk) + // 设置用户名 + .setHostName("root") + // 设置密码 + .setPassword("10160810@a") + // 设置要创创建的实例数量 + .setAmount(1) + .setInternetChargeType("PayByTraffic") + .setInternetMaxBandwidthOut(1); + + RuntimeOptions runtimeOptions = new RuntimeOptions(); + // 尝试执行创建实例请求 + try { + // 复制代码运行请自行打印 API 的返回值 + client.runInstancesWithOptions(runInstancesRequest, runtimeOptions); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + Common.assertAsString(error.message); + } + } + + @Override + public void run(ApplicationArguments args){ + try { + log.info("开始创建实例"); + generateInstance(); + } catch (Exception e) { + log.info("创建实例失败"); + throw new RuntimeException(e); + } + log.info("创建实例成功"); + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java new file mode 100644 index 0000000..df51878 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java @@ -0,0 +1,27 @@ +package com.muyu.cargateway.controller; + +import com.muyu.cargateway.service.CarOneClickOperationService; +import com.muyu.common.core.domain.Result; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:14 + * @ Version:1.0 + * @ Description:车辆一键操作控制层 + * @author Lenovo + */ +@Log4j2 +@RestController +@RequestMapping("/car/oneClick") +public class CarOneClickOperationController { + @Autowired + private CarOneClickOperationService carOneClickOperationService; + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/TestController.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/TestController.java new file mode 100644 index 0000000..739be0c --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/TestController.java @@ -0,0 +1,64 @@ +package com.muyu.cargateway.controller; + +import com.muyu.cargateway.service.CarOneClickOperationService; +import lombok.extern.log4j.Log4j2; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-27-20:08 + * @ Version:1.0 + * @ Description:fluxmq连接测试类 + * @author Lenovo + */ +@Log4j2 +@RestController +@RequestMapping("/testCarGateway") +public class TestController { + @PostMapping("/testCarConnect") + public void testCarConnect() { + String topic="carOneClick"; + String message="{\"carId\":\"123456789\",\"operation\":\"turnOn\"}";; + String broker="tcp://106.54.193.225:1883"; + String clientId="javaSample"; + int qos=1; + + try { + MqttClient mqttClient =new MqttClient(broker, clientId); + MqttConnectOptions mqttConnectOptions = new MqttConnectOptions(); + mqttConnectOptions.setCleanSession(true); + log.info("连接成功"+broker); + mqttClient.connect(mqttConnectOptions); + + mqttClient.subscribe(topic,0); + mqttClient.setCallback(new MqttCallback() { + @Override + public void connectionLost(Throwable throwable) { + log.info("连接丢失"); + } + + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + log.info(new String(mqttMessage.getPayload())); + } + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + //发布完成时调用 + } + }); + } catch (MqttException e) { + log.info("连接失败"+e.getReasonCode()); + log.info("信息"+e.getMessage()); + log.info("异常"+e); + log.info("异常信息"+e.getLocalizedMessage()); + log.info("异常类型"+e.getClass()); + e.printStackTrace(); + throw new RuntimeException(e); + } + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java new file mode 100644 index 0000000..b6d545a --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java @@ -0,0 +1,46 @@ +package com.muyu.cargateway.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-28-16:37 + * @ Version:1.0 + * @ Description:创建实例的配置 + * @author Lenovo + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AliServerConfig { + /** + * 主键 + */ + private Long id; + /** + * 地域ID + */ + private String regionId; + /** + * 镜像ID + */ + private String imageId; + /** + * 实例规格 + */ + private String instanceType; + /** + * 安全组ID + */ + private String securityGroupId; + /** + * 虚拟交换机ID + */ + private String vSwitchId; + + +} + diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java new file mode 100644 index 0000000..6628de0 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java @@ -0,0 +1,58 @@ +package com.muyu.cargateway.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-27-20:56 + * @ Version:1.0 + * @ Description:服务器配置 + * @author Lenovo + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value="server_config") +public class ServerConfig { + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 租户id + */ + private String tenantId; + /** + * 主机地址 + */ + private String host; + /** + * 端口 + */ + private String port; + /** + * 负载的地址 + */ + private String uri; + /** + * 默认MQTT地址 + */ + private String defaultMqttAddr; + /** + * 默认MQTT主题 + */ + private String defaultMqttTopic; + /** + * 默认MQTT QOS + */ + private Integer defaultMqttQos; +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java new file mode 100644 index 0000000..f4ea58c --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java @@ -0,0 +1,87 @@ +package com.muyu.cargateway.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.log4j.Log4j2; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:23 + * @ Version:1.0 + * @ Description:任务执行模型 + * @author Lenovo + */ +@Data +@Log4j2 +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TaskModel { + /** + * 任务状态 默认为false状态 + * true为执行中,false为未执行 + */ + private final AtomicBoolean status =new AtomicBoolean(Boolean.FALSE); + /** + * 堵塞计数器 + */ + private CountDownLatch countDownLatch; + /** + * 任务执行堵塞队列 + */ + private LinkedBlockingDeque carQueue =new LinkedBlockingDeque<>(); + /** + * 任务是否执行 + * true 执行中 + * false 未执行 + * @return 是否有任务执行 + */ + private boolean isExecution(){ + return !status.get(); + } + /** + * 任务名称 + */ + private String taskName; + /** + * 任务执行次数 + */ + private Integer taskExecutionCount=0; + /** + * 任务开始时间 + */ + private Long taskStartTime; + /** + * 任务成功执行次数 + */ + private AtomicInteger taskSuccessSum=new AtomicInteger(); + /** + * 任务执行失败次数 + */ + private AtomicInteger taskErrorSum=new AtomicInteger(); + + /** + * 判断是否有任务 + * @return true 有任务 + */ + public boolean hashNext(){ + return !carQueue.isEmpty(); + } + + /** + * 获取下一个任务节点 + * @return 任务VIN + */ + public String next(){ + return carQueue.poll(); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java new file mode 100644 index 0000000..f848275 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java @@ -0,0 +1,45 @@ +package com.muyu.cargateway.domain.properties; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Lenovo + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-22:13 + * @ Version:1.0 + * @ Description:Mqtt的配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MqttProperties { + /** + * 节点 + */ + private String broker; + /** + * 主题 + */ + private String topic; + /** + * 用户名 + */ + private String userName; + /** + * 密码 + */ + private String password; + /** + * 客户端id + */ + private String clientId; + /** + * 上报级别 + */ + private int qos = 0; +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java new file mode 100644 index 0000000..ded0cc8 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java @@ -0,0 +1,37 @@ +package com.muyu.cargateway.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-15:53 + * @ Version:1.0 + * @ Description:调用Ali服务器配置实体类 + * @author Lenovo + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class AliServerConfig { + /** + * 主键 + */ + private Long id; + /** + * 地域id (实例所属的地域ID) + */ + private String regionId; + /** + * 镜像id + */ + private String imageId; + /** + * 实例规格 (实例的资源规格) + */ + private String instanceType; +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java new file mode 100644 index 0000000..25cffea --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java @@ -0,0 +1,15 @@ +package com.muyu.cargateway.mapper; + +import org.apache.ibatis.annotations.Mapper; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:15 + * @ Version:1.0 + * @ Description:车辆一键操作持久层 + * @author Lenovo + */ +@Mapper +public interface CarOneClickOperationMapper { +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java new file mode 100644 index 0000000..27dafaa --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java @@ -0,0 +1,14 @@ +package com.muyu.cargateway.service; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:15 + * @ Version:1.0 + * @ Description:车辆一键操作业务层 + * @author Lenovo + */ +public interface CarOneClickOperationService { + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java new file mode 100644 index 0000000..4facb79 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java @@ -0,0 +1,18 @@ +package com.muyu.cargateway.service.Impl; + +import com.muyu.cargateway.service.CarOneClickOperationService; +import org.springframework.stereotype.Service; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:16 + * @ Version:1.0 + * @ Description:车辆一键操作业务实现层 + * @author Lenovo + */ +@Service +public class CarOneClickOperationServiceImpl implements CarOneClickOperationService { + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/test/MqttPublisher.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/test/MqttPublisher.java new file mode 100644 index 0000000..35093cc --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/test/MqttPublisher.java @@ -0,0 +1,60 @@ +//package com.muyu.cargateway.test; +// +//import lombok.extern.log4j.Log4j2; +//import org.eclipse.paho.client.mqttv3.MqttClient; +//import org.eclipse.paho.client.mqttv3.MqttConnectOptions; +//import org.eclipse.paho.client.mqttv3.MqttException; +//import org.eclipse.paho.client.mqttv3.MqttMessage; +// +///** +// * @ Tool:IntelliJ IDEA +// * @ Author:CHX +// * @ Date:2024-09-27-22:32 +// * @ Version:1.0 +// * @ Description:mqtt +// * @author Lenovo +// */ +//@Log4j2 +//public class MqttPublisher { +// //MQTT代理地址 +// String broker="tcp://106.54.193.225:1883"; +// //客户端ID +// String clientId="car-gateway"; +// //主题 +// String topic="car-gateway"; +// //要发送的内容 +// String content="连接成功"; +// //服务质量 0:最多一次 1:至少一次 2: +// int qos=0; +// MqttClient mqttClient; +// +// { +// try { +// mqttClient = new MqttClient(broker, clientId); +// +// //连接到MQtt代理 +// MqttConnectOptions mqttConnectOptions = new MqttConnectOptions(); +// //清空会话 +// mqttConnectOptions.setCleanSession(true); +// //连接 +// mqttClient.connect(mqttConnectOptions); +// log.info("MQTT客户端连接成功"+broker); +// +// //发送消息 +// MqttMessage message = new MqttMessage(content.getBytes()); +// //设置服务的质量 +// message.setQos(qos); +// //开始发送消息 +// mqttClient.publish(topic, message); +// log.info("消息发送成功,消息是:"+content); +// +// //断开连接 +// mqttClient.disconnect(); +// log.info("MQTT断开连接成功"); +// } catch (MqttException e) { +// //输出异常信息 +// e.getStackTrace(); +// throw new RuntimeException(e); +// } +// } +//} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/test/Sample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/test/Sample.java new file mode 100644 index 0000000..5827423 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/test/Sample.java @@ -0,0 +1,120 @@ +//package com.muyu.cargateway.test; +// +//import com.aliyun.ecs20140526.Client; +//import com.aliyun.ecs20140526.models.RunInstancesRequest; +//import com.aliyun.tea.TeaException; +//import com.aliyun.teaopenapi.models.Config; +//import com.aliyun.teautil.Common; +//import com.aliyun.teautil.models.RuntimeOptions; +//import lombok.extern.log4j.Log4j2; +// +//import java.util.Arrays; +//import java.util.List; +// +// +///** +// * @ Tool:IntelliJ IDEA +// * @ Author:CHX +// * @ Date:2024-09-27-23:38 +// * @ Version:1.0 +// * @ Description:调用ali的测试demo类 +// * @author Lenovo +// */ +//@Log4j2 +//public class Sample { +// +// /** +// * description : +// *

使用AK&SK初始化账号Client

+// * @return Client +// * +// * @throws Exception +// */ +// public static Client createClient() throws Exception { +// // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 +// Config config = new Config() +// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 +// .setAccessKeyId("LTAI5tDH3FyRx4PRr6anx2TL") +// // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 +// .setAccessKeySecret("xdQnX2tDattY50raNkUWmHzE2tondP"); +// // Endpoint 请参考 https://api.aliyun.com/product/Ecs +// config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; +// return new Client(config); +// } +// +// /** +// * 本程序的入口点 +// * 主要功能是创建阿里云ECS实例 +// * +// * @param args 命令行参数 +// * @throws Exception 如果执行过程中发生错误则抛出异常 +// */ +// public static void main(String[] args) throws Exception { +// // 将命令行参数转换为字符串列表 +// List arg = Arrays.asList(args); +// +// // 创建阿里云ECS客户端 +// Client client = Sample.createClient(); +// +// // 配置系统盘参数 +// RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new RunInstancesRequest.RunInstancesRequestSystemDisk() +// // 设置系统盘大小为20G +// .setSize("40") +// // 设置系统盘类型为cloud_essd +// .setCategory("cloud_essd"); +// +// // 创建创建实例请求对象并设置参数 +// +// RunInstancesRequest runInstancesRequest = new RunInstancesRequest() +// // 设置地域ID +// .setRegionId("cn-shanghai") +// // 设置镜像ID +// .setImageId("m-uf65fvle9qseu9jo5jl3") +// // 设置实例规格类型 +// .setInstanceType("ecs.t6-c1m1.large") +// // 设置安全组ID +// .setSecurityGroupId("sg-uf642d5u4ja5gsiitx8y") +// // 设置虚拟交换机ID +// .setVSwitchId("vsw-uf66lifrkhxqc94xi06v3") +// // 设置实例名称 +// .setInstanceName("server-mqtt") +// // 设置付费类型 按量付费 +// .setInstanceChargeType("PostPaid") +// // 设置系统盘配置 +// .setSystemDisk(systemDisk) +// // 设置用户名 +// .setHostName("root") +// // 设置密码 +// .setPassword("10160810@a") +// // 设置要创创建的实例数量 +// .setAmount(1); +// +// +// +// +// // 创建运行时选项对象 +// RuntimeOptions runtime = new RuntimeOptions(); +// +// // 尝试执行创建实例请求 +// try { +// // 复制代码运行请自行打印 API 的返回值 +// client.runInstancesWithOptions(runInstancesRequest, runtime); +// } catch (TeaException error) { +// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 +// // 错误 message +// System.out.println(error.getMessage()); +// // 诊断地址 +// System.out.println(error.getData().get("Recommend")); +// com.aliyun.teautil.Common.assertAsString(error.message); +// } catch (Exception _error) { +// TeaException error = new TeaException(_error.getMessage(), _error); +// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 +// // 错误 message +// System.out.println(error.getMessage()); +// // 诊断地址 +// System.out.println(error.getData().get("Recommend")); +// Common.assertAsString(error.message); +// } +// } +//} +// diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/banner.txt b/cloud-modules/cloud-modules-car-gateway/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..335687b --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml @@ -0,0 +1,60 @@ +# Tomcat +server: + port: 9702 + +# nacos线上地址 +nacos: + addr: 106.54.193.225:8848 + user-name: nacos + password: nacos + namespace: one +# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all +# Spring +spring: + amqp: + deserialization: + trust: + all: true + main: + allow-bean-definition-overriding: true + application: + # 应用名称 + name: cloud-breakdown + 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.breakdown.mapper: DEBUG diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..34cd186 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..1193d09 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/test.xml new file mode 100644 index 0000000..1193d09 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml index 00342f2..a07c11c 100644 --- a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 106.54.193.225:8848 user-name: nacos password: nacos namespace: public 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 c21b371..a36bd1b 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: 47.116.173.119:8848 user-name: nacos password: nacos namespace: one-saas 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 f40b3a7..47acae2 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: 47.116.173.119:8848 user-name: nacos password: nacos namespace: one-saas diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml index 388015e..220dec5 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos namespace: one-saas 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 a5dd953..2db1105 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: 47.116.173.119:8848 user-name: nacos password: nacos namespace: one-saas diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml index 756d816..e2b3575 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ server: # nacos线上地址 nacos: - addr: 127.0.0.1:8848 + addr: 106.54.193.225:8848 user-name: nacos password: nacos namespace: one diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index 1d52970..a4d02f4 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -18,6 +18,7 @@ cloud-modules-rail cloud-modules-warn cloud-modules-carmanage + cloud-modules-car-gateway cloud-modules 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 a62e359..6210ca6 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: 106.54.193.225:8848 user-name: nacos password: nacos namespace: one-saas diff --git a/init-file/cloud-system.sql b/init-file/cloud-system.sql index 3322763..c2c02e7 100644 --- a/init-file/cloud-system.sql +++ b/init-file/cloud-system.sql @@ -639,8 +639,8 @@ CREATE TABLE `sys_user` ( -- Records of sys_user -- ---------------------------- BEGIN; -INSERT INTO `sys_user` (`user_id`, `dept_id`, `user_name`, `nick_name`, `user_type`, `email`, `phonenumber`, `sex`, `avatar`, `password`, `status`, `del_flag`, `login_ip`, `login_date`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2024-05-23 15:08:18', 'admin', '2024-05-23 15:08:18', '', NULL, '管理员'); -INSERT INTO `sys_user` (`user_id`, `dept_id`, `user_name`, `nick_name`, `user_type`, `email`, `phonenumber`, `sex`, `avatar`, `password`, `status`, `del_flag`, `login_ip`, `login_date`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2024-05-23 15:08:18', 'admin', '2024-05-23 15:08:18', '', NULL, '测试员'); +INSERT INTO `sys_user` (`user_id`, `dept_id`, `user_name`, `nick_name`, `user_type`, `email`, `phonenumber`, `sex`, `avatar`, `password`, `status`, `del_flag`, `login_ip`, `login_date`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '106.54.193.225', '2024-05-23 15:08:18', 'admin', '2024-05-23 15:08:18', '', NULL, '管理员'); +INSERT INTO `sys_user` (`user_id`, `dept_id`, `user_name`, `nick_name`, `user_type`, `email`, `phonenumber`, `sex`, `avatar`, `password`, `status`, `del_flag`, `login_ip`, `login_date`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '106.54.193.225', '2024-05-23 15:08:18', 'admin', '2024-05-23 15:08:18', '', NULL, '测试员'); COMMIT; -- ----------------------------