Parcourir la source

小程序调试

skyline il y a 2 mois
Parent
commit
5e0e123eec

+ 20 - 0
haha-common/src/main/java/com/haha/common/config/CommonConfig.java

@@ -0,0 +1,20 @@
+package com.haha.common.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 公共配置类
+ */
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "haha.common")
+public class CommonConfig {
+    
+    /**
+     * 图片域名前缀
+     * 用于给商品图片链接添加域名前缀
+     */
+    private String imageDomainPrefix = "https://img.hahabianli.com/";
+}

+ 31 - 2
haha-miniapp/src/main/java/com/haha/miniapp/controller/OrderController.java

@@ -27,6 +27,9 @@ public class OrderController {
     @Autowired
     private OrderService orderService;
 
+    @Autowired
+    private com.haha.common.config.CommonConfig commonConfig;
+
     /**
      * 获取订单列表
      *
@@ -77,7 +80,9 @@ public class OrderController {
                             product.put("name", item.getString("product_name"));
                             product.put("price", item.getDouble("price"));
                             product.put("quantity", item.getInteger("product_num"));
-                            product.put("image", item.getString("pic"));
+                            // 处理图片链接
+                            String picUrl = item.getString("pic");
+                            product.put("image", normalizeImageUrl(picUrl));
                             products.add(product);
                         }
                         orderMap.put("products", products);
@@ -172,7 +177,9 @@ public class OrderController {
                         product.put("name", item.getString("product_name"));
                         product.put("price", item.getDouble("price"));
                         product.put("quantity", item.getInteger("product_num"));
-                        product.put("image", item.getString("pic"));
+                        // 处理图片链接
+                        String picUrl = item.getString("pic");
+                        product.put("image", normalizeImageUrl(picUrl));
                         Double price = item.getDouble("price");
                         Integer quantity = item.getInteger("product_num");
                         product.put("subtotal", price != null && quantity != null ? price * quantity : 0);
@@ -267,6 +274,28 @@ public class OrderController {
         return new JSONArray();
     }
 
+    /**
+     * 标准化图片 URL
+     * 如果图片链接已经是完整的 URL(包含 http://或 https://),则保持不变
+     * 否则添加配置的图片域名前缀
+     *
+     * @param picUrl 原始图片链接
+     * @return 标准化后的图片链接
+     */
+    private String normalizeImageUrl(String picUrl) {
+        if (picUrl == null || picUrl.isEmpty()) {
+            return picUrl;
+        }
+        
+        // 如果已经是完整的 URL(以 http://或 https://开头),则直接返回
+        if (picUrl.startsWith("http://") || picUrl.startsWith("https://")) {
+            return picUrl;
+        }
+        
+        // 否则添加域名前缀
+        return commonConfig.getImageDomainPrefix() + picUrl;
+    }
+
     /**
      * 获取订单状态文本
      */

+ 5 - 0
haha-miniapp/src/main/resources/application.yml

@@ -96,6 +96,11 @@ haha:
     app-id: 2601051549145878
     app-secret: 06e1be59332b00de0baad82002cdbcb5
     base-url: http://api.hahabianli.com/
+  
+  # 公共配置
+  common:
+    # 图片域名前缀
+    image-domain-prefix: https://img.hahabianli.com/
 
 # Sa-Token 配置
 sa-token:

+ 28 - 1
haha-service/src/main/java/com/haha/service/impl/HahaCallbackServiceImpl.java

@@ -53,6 +53,9 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
     @Value("${haha.api.app-secret}")
     private String appSecret;
 
+    @Autowired
+    private com.haha.common.config.CommonConfig commonConfig;
+
     private static final String DEVICE_STATUS_KEY = "haha:device:status:";
     private static final String RECOGNIZE_RESULT_KEY = "haha:recognize:result:";
     private static final String ORDER_INFO_KEY = "haha:order:info:";
@@ -506,7 +509,9 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
                 goods.setCode(goodsJson.getString("code"));
                 goods.setBarCode(goodsJson.getString("bar_code"));
                 goods.setProductName(goodsJson.getString("product_name"));
-                goods.setPic(goodsJson.getString("pic"));
+                // 处理图片链接:如果已经是完整 URL 则保持不变,否则添加域名前缀
+                String picUrl = goodsJson.getString("pic");
+                goods.setPic(normalizeImageUrl(picUrl));
                 goods.setProductNum(goodsJson.getInteger("product_num"));
 
                 if (goodsJson.get("money") != null) {
@@ -529,6 +534,28 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
         }
     }
 
+    /**
+     * 标准化图片 URL
+     * 如果图片链接已经是完整的 URL(包含 http://或 https://),则保持不变
+     * 否则添加配置的图片域名前缀
+     *
+     * @param picUrl 原始图片链接
+     * @return 标准化后的图片链接
+     */
+    private String normalizeImageUrl(String picUrl) {
+        if (picUrl == null || picUrl.isEmpty()) {
+            return picUrl;
+        }
+        
+        // 如果已经是完整的 URL(以 http://或 https://开头),则直接返回
+        if (picUrl.startsWith("http://") || picUrl.startsWith("https://")) {
+            return picUrl;
+        }
+        
+        // 否则添加域名前缀
+        return commonConfig.getImageDomainPrefix() + picUrl;
+    }
+
     private Order fetchRecognitionAndCreateOrder(String activityId, String deviceId, String userId) {
         try {
             Map<String, Object> recognizeResult = hahaClient.getOrderApi().getRecognizeResult(null, activityId);