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