Explorar el Código

chore(config): 更新中车推送配置和Docker部署设置

- 交换电商私钥和企采公钥的常量定义
- 更新测试环境时间戳、数据和访问令牌
- 修改中车推送策略中的用户名
- 添加商品状态统计查询优化索引SQL脚本
- 创建多个微服务模块的Docker部署运行配置文件
- 启用Java空值分析自动模式设置
肖路 hace 2 semanas
padre
commit
f0cefc0305

+ 12 - 0
.run/ruoyi-auth.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-auth" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-auth:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-auth/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-bill.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-bill" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-ruoyi-bill:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-bill/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-customer.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-customer" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-customer:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-customer/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-external.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-external" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-external:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-external/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-gateway.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-gateway" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-gateway:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-gateway/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-mall.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-mall" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-ruoyi-mall:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-mall/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-nacos.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-nacos" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-ruoyi-nacos:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-visual/ruoyi-nacos/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-order.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-order" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-order:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-order/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-product.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-product" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-product:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-product/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-resource.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-resource" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-resource:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-resource/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-system.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-system" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-system:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-system/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "java.compile.nullAnalysis.mode": "automatic"
+}

+ 7 - 7
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/zhongche/ZhongChePushController.java

@@ -70,10 +70,10 @@ public class ZhongChePushController {
 
     private final IExternalProductCategoryService externalProductCategoryService;
 
-    //正式环境
-    private static final String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAET+jWMEx6VtkEy/ANn9oaYLpxKQ1ZCQYRKwUDy6jUv0ouUPvSPcFKQmHZNRLweR8Oss5BOG2JOSGTNY/v0pzRZw=="; // 电商提供的私钥
-    // 电商提供的公钥*/
-    private static final String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgQu0H97EPqkgz1YS5LkzZNmkG3mS5Er8rJ2LSoJtuOlGgCgYIKoEcz1UBgi2hRANCAARP6NYwTHpW2QTL8A2f2hpgunEpDVkJBhErBQPLqNS/Si5Q+9I9wUpCYdk1EvB5Hw6yzkE4bYk5IZM1j+/SnNFn";
+    //电商私钥
+    private final static String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgQu0H97EPqkgz1YS5LkzZNmkG3mS5Er8rJ2LSoJtuOlGgCgYIKoEcz1UBgi2hRANCAARP6NYwTHpW2QTL8A2f2hpgunEpDVkJBhErBQPLqNS/Si5Q+9I9wUpCYdk1EvB5Hw6yzkE4bYk5IZM1j+/SnNFn";
+    //企采公钥
+    private final static String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE9ITEKJdH9o1K9AeQYY7zNMo/q5/cdce+9jbawURTPEpBKAx4VkB+lRkb5e5YL+Be4pPM464rPvLyfqGNJvL6uQ==";
 
 
     //测试环境
@@ -799,10 +799,10 @@ public class ZhongChePushController {
         // 1️⃣ 构造请求对象(和你 controller 里的一模一样)
         ZCTokenBo bo = new ZCTokenBo();
         bo.setVersion("1.0.0");
-        bo.setTimestamp("20260210162447");
+        bo.setTimestamp("20260326160413");
         bo.setClientId("KFZAVuIyC56");
-        bo.setData("eyJpZCI6ImQwMDk0ZWMzLWUwMzItNDNkZi1iOTVhLTdjZmI0YWM5MTI2MSIsInR5cGUiOiIyMDAxIiwiY29udGVudCI6eyJvcmRlck5vIjoiMjAyNjAyMTAxMTAxNzQxMzAifSwidGltZSI6IjIwMjYwMjExMTM1NjAxMTQ5In0=");
-        bo.setAccessToken( "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiI5TThhbTRWczNBcm85cG5lSnlKUUhzMXFhMTZiT3BPcSIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.0OsSOuJNM3KSYvkdSYh4AtbR9OFWllbHCUaBkqpfMMY");
+        bo.setData("eyJpZCI6IjM1ODdjOGRhLTAxMWItNGUyOS1iYmQzLTIzODA0MDYyZDc1NyIsInR5cGUiOiIyMjAxIiwiY29udGVudCI6eyJ1c2VybmFtZSI6IjIwMjQwMzE2MDAxIn0sInRpbWUiOiIyMDI2MDMyNjE2MDQxMzU3NyJ9");
+        bo.setAccessToken( "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoyMDM3MDc2OTc3MjQ2MzE0NDk3Iiwicm5TdHIiOiJVTm84azZISzFLQXZ0eXJZOG9KZUtZV0dQbHd1MnlMZCIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MjAzNzA3Njk3NzI0NjMxNDQ5NywidXNlck5hbWUiOiIyMDI0MDMxNjAwMSIsImRlcHRJZCI6MTk5NjgyODcyMjQwMDg5OTA3NCwiZGVwdE5hbWUiOiJBUEnlr7nmjqXnrqHnkIblubPlj7AiLCJkZXB0Q2F0ZWdvcnkiOiIifQ.BSrQtYQQIcy2chvcza4qVjj7x6wXw2OA5zAJb0vI-rk");
         // 注意:此时不要 setSign
 
         // 2️⃣ 打印待签名内容(用于和中车排查)

+ 1 - 1
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/handler/impl/ZhongChePushStrategy.java

@@ -50,7 +50,7 @@ public class ZhongChePushStrategy implements ProductPushStrategy {
 
     @Override
     public void push( Long itemId,List<ExternalProduct> products) {
-        String username = "admin";
+        String username = "20240316001";
         List<ExternalProductVo> productVoList = new ArrayList<>();
         for (ExternalProduct product : products) {
             ExternalProductVo vo = BeanUtil.toBean(product, ExternalProductVo.class);

+ 16 - 0
script/sql/product_status_index.sql

@@ -0,0 +1,16 @@
+-- 为商品状态统计查询优化创建索引
+-- 优化商品状态(product_status)和审核状态(product_review_status)的查询性能
+
+-- 创建状态组合索引,优化商品状态统计查询
+CREATE INDEX idx_product_status_review ON product_base (product_status, product_review_status, del_flag);
+
+-- 或者分别创建单列索引(如果组合索引不适合其他查询场景)
+-- CREATE INDEX idx_product_status ON product_base (product_status);
+-- CREATE INDEX idx_product_review_status ON product_base (product_review_status);
+-- CREATE INDEX idx_product_del_flag ON product_base (del_flag);
+
+-- 以下查询将受益于该索引:
+-- 1. SELECT COUNT(*) FROM product_base WHERE del_flag = '0'
+-- 2. SELECT COUNT(*) FROM product_base WHERE product_status = '1' AND del_flag = '0'
+-- 3. SELECT COUNT(*) FROM product_base WHERE product_review_status IN ('0', '3') AND del_flag = '0'
+-- 4. 以及我们优化后的聚合查询