From 71fca447b76d88b45ef5c24b47a9428a517c4499 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 03 四月 2025 14:33:31 +0800
Subject: [PATCH] 管理后台-门店管理

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java      |   44 +++++++++-----
 cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java |   16 ++++
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java            |    3 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ImageUtils.java                      |   78 ++++++++++++++++++++++++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java                     |    5 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java                    |    3 +
 7 files changed, 133 insertions(+), 18 deletions(-)

diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java
index 82b052f..1eeb4ee 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java
@@ -45,4 +45,7 @@
     @TableField("sort")
     private Integer sort;
 
+    @TableField("displayType")
+    private Integer displayType;
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java
index 80eaf66..9f942bc 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java
@@ -33,5 +33,7 @@
      * 排序
      */
     private Integer sort;
+
+    private Integer displayType;
     
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java
index 5b3f135..700baed 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java
@@ -1,17 +1,22 @@
 package com.dsh.guns.modular.system.controller.code;
 
 
-import com.dsh.course.feignClient.other.model.Banner;
 import com.dsh.guns.config.UserExt;
+import com.dsh.guns.core.util.ToolUtil;
 import com.dsh.guns.modular.system.model.HomeModule;
 import com.dsh.guns.modular.system.service.IHomeModuleService;
 import com.dsh.guns.modular.system.service.IStoreService;
+import com.dsh.guns.modular.system.util.ImageUtils;
 import com.dsh.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -51,6 +56,13 @@
         if (homeModule.getPage().equals("请选择")){
             homeModule.setPage(null);
         }
+        if (ToolUtil.isNotEmpty(homeModule.getBackgroundImage())) {
+            try {
+                homeModule.setDisplayType(ImageUtils.getImageDimensions(homeModule.getBackgroundImage()).getDisplayType());
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
         return ResultUtil.success(homeModuleService.updateById(homeModule));
     }
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
index 4bd9598..f4c730d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -42,6 +42,7 @@
 import com.dsh.guns.modular.system.service.TStoreOtherService;
 import com.dsh.guns.modular.system.service.TTurnService;
 import com.dsh.guns.modular.system.util.HttpRequestUtil;
+import com.dsh.guns.modular.system.util.ImageUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -52,6 +53,7 @@
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -780,6 +782,9 @@
                 worldCupStore.setSort(sort);
                 worldCupStore.setId(id1);
                 worldCupStore.setBackgroundImage(backgroundImage);
+                if (ToolUtil.isNotEmpty(backgroundImage)) {
+                    worldCupStore.setDisplayType(ImageUtils.getImageDimensions(backgroundImage).getDisplayType());
+                }
                 worldCupStore.setIsOpen(isOpen);
                 worldCupStores.add(worldCupStore);
             }
@@ -796,24 +801,31 @@
         StoreConfig one = storeConfigService.getOne(new QueryWrapper<StoreConfig>()
                 .eq("storeId", id)
                 .eq("type", type));
-        if (one!=null){
-            one.setSort(sort);
-            one.setIsOpen(isOpen);
-            if(ToolUtil.isNotEmpty(img)){
-                one.setBackgroundImage(img);
+        try {
+            if (one != null) {
+                one.setSort(sort);
+                one.setIsOpen(isOpen);
+                if (ToolUtil.isNotEmpty(img)) {
+                    one.setBackgroundImage(img);
+                    one.setDisplayType(ImageUtils.getImageDimensions(img).getDisplayType());
+                }
             }
+            if (one == null) {
+                StoreConfig storeConfig = new StoreConfig();
+                storeConfig.setStoreId(id);
+                storeConfig.setType(type);
+                storeConfig.setIsOpen(isOpen);
+                storeConfig.setSort(sort);
+                storeConfig.setBackgroundImage(img);
+                if (ToolUtil.isNotEmpty(img)) {
+                    storeConfig.setDisplayType(ImageUtils.getImageDimensions(img).getDisplayType());
+                }
+                storeConfigService.save(storeConfig);
+                return storeConfig;
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
         }
-        if (one == null){
-            StoreConfig storeConfig = new StoreConfig();
-            storeConfig.setStoreId(id);
-            storeConfig.setType(type);
-            storeConfig.setIsOpen(isOpen);
-            storeConfig.setSort(sort);
-            storeConfig.setBackgroundImage(img);
-            storeConfigService.save(storeConfig);
-            return storeConfig;
-        }
-
         return one;
     }
     @RequestMapping(value = "/oneChangeNext")
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java
index 8eda196..443571d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java
@@ -88,4 +88,9 @@
      */
     @TableField("typeId")
     private Integer typeId;
+    /**
+     * 展示类型 1=横屏 2=竖屏
+     */
+    @TableField("displayType")
+    private Integer displayType;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java
index ea3814d..5ff4b68 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java
@@ -58,6 +58,9 @@
     @TableField("backgroundImage")
     private String backgroundImage;
 
+    @TableField("displayType")
+    private Integer displayType;
+
 
     @Override
     protected Serializable pkVal() {
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ImageUtils.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ImageUtils.java
new file mode 100644
index 0000000..425161f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ImageUtils.java
@@ -0,0 +1,78 @@
+package com.dsh.guns.modular.system.util;
+
+import lombok.Getter;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+
+public class ImageUtils {
+
+    /**
+     * 获取图片的尺寸(宽高)
+     *
+     * @param imageUrl 图片的URL地址
+     * @return 包含图片宽高的Dimension对象
+     * @throws IOException 如果URL无效、读取超时、图片格式不支持或图片损坏
+     */
+    public static Dimension getImageDimensions(String imageUrl) throws IOException {
+        URL url = new URL(imageUrl);
+        URLConnection connection = url.openConnection();
+        // 设置连接和读取超时时间(单位:毫秒)
+        connection.setConnectTimeout(5000);
+        connection.setReadTimeout(5000);
+        
+        try (InputStream inputStream = connection.getInputStream()) {
+            BufferedImage image = ImageIO.read(inputStream);
+            if (image == null) {
+                throw new IOException("Unsupported image format or corrupted image");
+            }
+            return new Dimension(image.getWidth(), image.getHeight());
+        }
+    }
+
+    /**
+     * 封装图片宽高的内部类
+     */
+    @Getter
+    public static class Dimension {
+        private final int width;
+        private final int height;
+
+        public Dimension(int width, int height) {
+            this.width = width;
+            this.height = height;
+        }
+
+        @Override
+        public String toString() {
+            return "Dimension{width=" + width + ", height=" + height + "}";
+        }
+
+        /**
+         * 展示类型 1 横屏 2 竖屏
+         * @return
+         */
+        public Integer getDisplayType(){
+            if (width > height) {
+                return 1;
+            } else {
+                return 2;
+            }
+        }
+    }
+
+    // 示例用法
+    public static void main(String[] args) {
+        try {
+            Dimension dimension = getImageDimensions("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/e4ef2672d1a6456f9cd680ce51cf3a6e.jpg");
+            System.out.println(dimension);
+            System.out.println(dimension.getDisplayType());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.7.1