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